CSharp Basic Tutorial Chapter-3-1 字段方法


Main content of Chapter 3

content

Class

最常见的一种引用类型

class YourClassName
{
  //...
}

字段 Field

是class 或 Struct 的成员,它是一个变量

class Octopus
{
  string name;
  public int Age=10;
}

readonly 修饰符

  • readonly 修饰符防止字段在构造之后被改变
  • readonly 字段只能在声名的时候被赋值,或在构造函数里被赋值

字段初始化

  • 字段在声明的时候可以进行初始化
  • 未初始化的字段有一个默认值
  • 字段的初始化在构造函数之前运行

同时声明多个字段

static readonly int legs=8, eyes=2;

方法

  • 通常包含一些语句,会执行某个动作
  • 可以传入参数
  • 可以返回数据,返回类型
  • Void,不返回数据
  • ref/out 参数

方法的签名

  • 一个类型内,其每个方法的签名必须是唯一的
  • 签名:方法名、参数类型(含顺序,但与参数名称和返回类型无关)

demo1
demo2
demo3
demo4
demo5
demo6

Expression-bodied 方法

int Foo(int x){ return x*2;}
int Foo(int x) => x*2;
void Foo(int x) => Console.WriteLine(x);

方法的重载 overload

  • 类型里的方法可以进行重载(允许多个同名的方法同时存在),只要这些方法的签名不同就行
    void Foo(int x){...}
    void Foo(double x){...}
    void Foo(int x,float y){...}
    void Foo(float x, int y){...}
    void Foo(int x){...}
    float Foo(int x){...}   //Compile-time error
    

//方法签名不包含params 关键字
void Goo(int[] x){…}
voidFoo(params int[] x){…} //Compile-time error


## 按值传递 vs 按引用传递
*   参数是按值传递的还是按引用传递的,也是方法签名的一部分
```CS
void Foo(int x){...}
void Foo(ref int x){...}    //OK so far

void Foo(int x){...}
void Foo(ref int x){...}    //OK so far
void Foo(out int x){...}    //Compile-time error

本地方法(C# 7)

这个方法只对大括号里面起作用 在属性 构造器里面一般会用

void WriteCubes()
{
  Console.WriteLine(Cube(3));
  Console.WriteLine(Cube(4));
  Console.WriteLine(Cube(5));

  int Cube(int value) => value * value * value; 
}

文章作者: Chaoqiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chaoqiang !
评论
 上一篇
CSharp Basic Tutorial Chapter-3-2 构造函数和解析函数 CSharp Basic Tutorial Chapter-3-2 构造函数和解析函数
构造函数 在class或struct上运行初始化代码 和定义方法差不多,但构造函数的名和类型名一致,返回类型也和类型一致,并且返回类型就省略不写了 C#7,允许单语句的构造函数写成expression-bodied成员的形式 构造函数重
下一篇 
CSharp Basic Tutorial Chapter-2-12 Null CSharp Basic Tutorial Chapter-2-12 Null
可空值类型和string Null 可空值类型相关,Nullable… Null,空,空白string 可空值类型: 可空值类型是System.Nullable 这个struct的实例 可空值类型除了可以正确的表示其底层数据类型的范围,还可
  目录