加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.com.cn/)- 自然语言处理、建站、经验、云计算、图像分析!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C#应该了解的简单的知识点

发布时间:2023-06-17 11:30:23 所属栏目:语言 来源:网络
导读: C#应该知道的简单的知识点



  1.本地变量



  一看这个标题你可能会一愣,这是个什么东东。看个小例子:



  static void main()



  {



  int a=
       C#应该知道的简单的知识点

   1.本地变量
 
  一看这个标题你可能会一愣,这是个什么东东。看个小例子:
 
  static void main()
 
  {
 
  int a=10;
 
  MyClass mc=new MyClass();
 
  }
 
  呵呵,这里的a与mc就是本地变量,它和字段一样,也保存数据。字段通常保存和对象状态有关的数据,而创建本地变量经常用于保存本地或临时数据。呵呵,简单吧,但是它和实例字段有何区别:
 
  实例字段
 
  本地变量
 
  生存期 从实例创建开始,直到实例不再被访问
 
  从它在块中被声明开始,到块执行结束
 
  隐式初始化 初始化成该类的默认值 没有隐式初始化。如果变量在使用之前没有被赋值,编译器将报错
 
  存储区域 由于实例字段是类的成员,所有的字段都存储在堆里,无论它是指类型还是引用类型 值类型:存储在栈里
 
  引用类型:引用存储在栈里,数据存放在堆里
 
  2.var 关键字
 
  我们知道var可以自动推断变量的类型,如上代码,我们可以发现在声明开始部分提供类型名时,编译器能从初始化语句的右边推断出来它的类型,所以,在声明的开始部分包括显示的类型名多余的。
 
  为了避免这种多余,可以在声明的开始部分的显示类型名的位置使用新的关键字var。上面代码可以改成:
 
  static void main()
 
  {
 
  var a=10;
 
  var mc=new MyClass();
 
  }
 
  3.值参数
 
  使用值参数,通过将实参的值复制到形参的方式把数据传递给方法。方法被调用时,系统做如下操作:
 
  在栈中为形参分配空间
 
  将实参的值复制给形参
 
  4.引用参数(ref)
 
  不会为形参在栈上分配内存
 
  实际情况是,形参的参数名将作为实参变量的别名,指向相同的内存位置
 
  实参必须是变量,在用作实参前必须被赋值。如果是引用类型变量,可以赋值一个引用或者null
 
  5.输出参数(out)
 
  在方法内部,输出参数在能够使用之前必须被赋值。这就意味着参数的初始值是不起作用的,所以没有必要在方法调用前为参数赋值。
 
  在方法返回之前,方法内部任何路径都必须为所有输出参数进行一次赋值。
 
  如下代码:
 
  public void Add(out int outValue) { int var1=outValue+2; }上述代码输出参数在方法赋值之前被读取将会报错。
 
  6.属性(set,get)
 
  属性是一个函数成员
 
  它不为数据的存储分配内存
 
  它可以执行代码
 
  set访问器拥有一个单独的隐式的值参,名称为Value,与属性的类型相同且拥有一个返回类型void
 
  get访问器没有参数,拥有一个与属性类型相同的返回类型。
 
  7.对象初始化语句
 
  我们都知道创建一个对象是由new 后面跟着一个类构造函数及其参数列表组成。
 
  对象初始化语句扩展了创建语法,在表达式的尾部放置了一组成员初始化的语句。允许我们创建新的对象实例时,设置字段和属性的值。
 
  该语法有两种形式:一种形式是包括构造函数的参数列表,另一种是不包括。注意第一种形式可以省略圆括号。
 
  new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}
 
  new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}
 
  示例如下:
 
  public static void main()
 
  {
 
  Point p1=new Point();
 
  Point p2=new Point{X=4,Y=5,Z=6};
 
  Point p3=new Point(9){X=7,Y=8};
 
  }
 
  public class Point
 
  {
 
  public int X=1;
 
  public int Y=2;
 
  public int Z=3;
 
  public Point(int z) { Z=z; }
 
  }
 
  8.this关键字
 
  this关键字在类中使用,是对当前实例的引用。它只能用在下列类成员的代码中
 
  实例构造函数
 
  实例方法
 
  属性和索引器的实例访问权
 
  由于静态成员不是实例的一部分,所以不能在任何静态函数成员的代码中使用this关键字。更适当的说,this用于下列目的:
 
  用于区分类的成员和本地变量或参数
 
  做为调用方法的实参

(编辑:南京站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章