总结

本文深入探讨.NET框架与C#编程语言的核心概念,包括命名规范、字符串操作、循环语句、程序结构、数据类型、方法应用、类与对象、集合类及文件管理等关键主题。同时解析了.NET如何实现语言无关性,以及C#中的各种编程实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. .net与C#
  2. 命名规范
  3. 字符串中的转义
  4. 循环语句于应用方式
  5. 程序结构
  6. 常量、枚举、结构体、数组
  7. 方法的应用(方法中的参数)
  8. 构造函数
  9. 字符串
  10. 结构体和类
  11. ArrayList(集合)、Hashtable(哈希表)、List(泛型集合)、Dictionary(字典)
  12. 文件管理

.net与C#

.net:一般指.Net Framework框架,一种平台,一种技术。

C#:一种编程语言,可以开发基于.net平台的应用

.net是如何实现语言无关性?
.net 平台支持很多语言,常见有:C#、VB、C++、F#、J#(Java)等
但是实际上经过编译之后,统一生成了中间语言IL”,类似汇编,就因为这样,才可以在以上所有的语言中相互引用dll,因为实际是都是一种语言“IL”
在执行的时候,实际上.net会把IL先给编译成机器码,也就是二进制,这才是真正的可执行代码。

命名规范

变量名首字母小写,其他单词首字母大写:writeWord
类名首字母大写,例如:Class
参数首字母小写,其他单词首字母大写,例如:strFlag
类字段首字母小写,前面加_,例如:_name
类属性首字母大写,例如:Name
类方法首字母大写,其他单词首字母大写,例如:SayHello()
常量名首字母大写,例如:Pi
接口首字母要写大写的I,例如: interface ITest
事件首字母要大写,例如:DoTask()
命名空间首字母要大写,例如:MyTest
字符串中的转义
\+可以在代码中显示出+号,因为+是特殊字符
\n表示换行
\b表示退格,会有两种情况,后面有内容,才会掩藏前面的内容,如果没有内容,就不会隐藏,下游表移到前面的位置
\\表示\,因为\是特殊字符
\t表示的是水平制表符
\"表示一个双引号
@会让后面的转义符失效,从而找到路径,避免麻烦的去添加\

 

循环语句于应用方式
for循环知道循环次数
while循环先判断,在执行
do-while循环先执行,在判断

 

程序结构
顺序结构语句顺序执行
分支结构语句在满足条件下执行
循环结构语句在满足条件下循环执行多次
名称格式应用
常量const 类型 常量名 =常量值应用于确定的值
枚举访问修饰符 enum 枚举名限定了变量的取值范围
结构体访问修饰符 struct 结构名一次声明多个不同类型的变量
数组数据类型[] 变量名=new 数据类型[]{}一次声明多个相同类型的变量
//常量

const int num=10;

//枚举
public enum Gender
{
    男,
    女
}
public struct Person
{
    public string _name;
    public int _age;
    public Gender _gender;

}

class Program
{
    static void Main(string[]args)
    {
        person zsPerson;
        zsPerson._name="张三" ;
        zsPerson._age="18";
        zsPerson._gender=Gender.男;
    }
}

//数组

int[]nums=new[]{1,2,45,7,7};  //声明一个数组,数组中的元素为1,2,45,7,7,有索引

 

 

方法的应用
名称作用要求
方法的重载可以在不改变原方法的基础上,新增功能方法名相同,但参数类型或个数必须有所不同
out参数内部为外部变量赋值,out一般用在函数需要有多个返回值的场所

1.如果方法的参数用out修饰了,那么这个参数,必须在方法里进行赋值

2.在方法外,可以不辅初值

3.参数前面必须加out

4.传地址(地址改变,值就会改变)

ref参数可以把值传到方法里,又可以把值传到方法外

1.ref用的时候必须要给这个变量赋初值

2.传地址(地址改变,值就会改变)

3.传出去什么值,就是什么值

//out参数和ref参数和一般参数

static void Main(string[]args)
{
    int num1;    //用out,可以不用赋初值
    int num2=90;    //没有用out和ref,必须赋初值
    int num3=90;    //用ref,必须赋初值
    int num4=90;    //没有用out和ref,必须赋初值

    int numSum1=Show(out num1,ref num3)
    int numSum2=Show(num2,num4)

    console.WriteLine(num1);         //num1=90
    console.WriteLine(num2);         //num2=200
    console.WriteLine(numSum2);      //numSum2=180

}


public static int Show(out int number1,int number2,ref int num3,int number4)
{
    number1=90;    //out,方法里面赋值,外面的值传不进来,只能将下面的值传出去
    numSum=number2+number4;    //一般的将值传进来,但是外面的变量的值不会变,要传出去一个新得变量,外面也应该有一个新的变量去接受
    number3=200;   //ref,外面的值可以传进来,方法里面的值可以传出去,这个的返回值就是200
}

public static int Show(int number2,int number4)
{
  
    numSum=number2+number4;    //一般的将值传进来,但是外面的变量的值不会变,要传出去一个新得变量,外面也应该有一个新的变量去接受
   
}

类与对象
对象
模板,抽象的概念看得见,摸得到,特质的,具体的
不占内存占内存

构造函数

  • 用来创建对象,并且可以在构造函数中对对象进行初始化
  • 构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用
  • 构造函数可以有参数,new对象的时候传递参数即可
  • 如果不指定构造函数,则类有一个默认的无参构造函数,如果指定了构造函数,则不在有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
  • 构造函数可以重载,也就是有多个参数不同的构造函数

//构造函数
public infoStudent(string name,string sex,int age)
{
      this._name = name;   //this是指示代词
      this._sex = sex;
      this._age = age;
}

//主程序调用
static void Main(string[] args)
{
    //赋值        
    infoStudent xiaolan = new infoStudent("小兰", "女", 16);
    //调用类中的方法,根据赋值内容,显示出相应的内容
    xiaolan.DaZhaoHu();
}

字符串

  • string可以看作是char的只读数组。char c=s[1];例子:遍历输出string中的每个元素
  • C#中字符串有一个重要特性:不可变性,字符串一旦声明就不在可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行修改
  • 如果要对char进行修改,那么就必须创建一个新的字符串,用s.ToCharArray()方法得到字符串的char数组,对数组进行修改后,调用new string(char[])这个构造函数来创建char数组的字符串。一旦字符串被创建,那么char数组的修改也不糊造成字符串的变化。
string void Main(string[]args)
{
    string text="哈哈,又变帅了";
    char[]chs=text.ToCharArray();
    chs[5]='酷';
    string str=new string (chs);
    console.WriteLine(str);    
    //显示-哈哈,又变酷了,只是将一个新的字符串显示出来了,原来的字符串没有改变

}
结构体
如果写构造函数,那么就要把结构中所有的字段全部赋值(在构造函数的参数写)如果写构造函数,类中的字段不需要全部赋值
有默认无参的构造函数,写一个有参的构造函数,默认的无参数的构造函数还在有默认无参的构造函数,写一个有参的构造函数,默认的无参数的构造函数不在
值类型引用类型
值存在栈上栈上存的是地址,值在堆上,地址一样,值一样
structclass
//类
public class person(string name,int age)
        {
            this.Name = name;
            this.Age = age;
        }
//结构体,也有字段和属性和方法
public struck person(string name,int age)
        {
            this.Name = name;
            this.Age = age;
        }

总结ArrayList(集合)、Hashtable(哈希表)、List(泛型集合)、Dictionary(字典):https://blog.youkuaiyun.com/lclcsdnblink/article/details/86539592

文件管理:https://blog.youkuaiyun.com/lclcsdnblink/article/details/86548808

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值