zoukankan      html  css  js  c++  java
  • c# 类属性和方法

    属性

    public 类字段 就相当于c#里面暴露给外面的属性 类似nodejs的 module.exports
    但是属性又不同于普通的字段,属性只是外部包装字段 没有自己的任何含量 类似退换后的方法。 还是需要内部字段来设置。
    private 类字段 就相当于类内部使用的字段。其实可以把属性看做私有变量的访问器
     
    1、属性的作用:保护字段,对字段取值与赋值进行限定
    2、属性的使用:
    _name(属性名)
    public [对应字段类型] 属性名Name
    {
    get{return _name;}
    set{_name=value;}
    }
    

      

    3、字段和属性的命名格式:
    字段的命名方式一般采用:_cameCase
    字段的命名方式一般采用:PascalCase
     
    4、有了属性以后,往往通过属性去访问字段。属性通常声明为public,字段通常声明为private。在外部访问类中的字段,都是通过属性来实现。get可对取值进行界定,set可对赋值进行界定,通常我们将get和set称为访问器。
     
    5、属性分为4种,
    1)既读又写:同时包含get和set
    2)只读:只包含get
    3)只写:只包含set
    4)自动属性
     
    例子:
    class gwyy {
    private string _name; //字段 私有
    public string Name
    {
    get { return _name + 'a'; }
    set { _name = value; }
    } 属性,公有 但是还是需要依赖于实体字段
    }
    

      

     
     
    方法:
    “方法”是包含一系列语句的代码块。在 C# 中,每个执行指令都是在方法的上下文中完成的。
    方法在类或结构中声明,声明时,声明时需要指定访问级别、返回值、方法名称以及任何方法参数。方法参数放在括号中,并用逗号隔开。空括号表示方法不需要参数。下面的类包含三个方法:
    class Motorcycle { public void StartEngine() { } public void AddGas(int gallons) { } public int Drive(int miles, int speed) { return 0; } }
     
    静态方法
    静态方法不对特定的类实例化,调用时候,需要指定类名调用
    非静态方法
    略。。。
     
    方法重载
    方法名相同,但参数的 数据类型、 个数、顺序不同
     
     
    可变参数
    可以在方法参数栏加params属性 接受一个一维数组的可变参数
    public void test1(params string[] list) {
    for (int i = 0; i < list.Length; i++)
    {
    Console.WriteLine(list[i]);
    }
    

      

    }
     
     
    ref 按引用传递
    调用方法时,在方法中对参数所做的任何更改都反应在该变量中。
    使用ref参数 必须方法声明 和调用方都必须显示的使用 ref关键字
    int i = 3;
    Console.WriteLine(i);
    g.test2(ref i);
    Console.WriteLine(i);
    public void test2(ref int i) {
    i = 55;
    }
    

      

     
    out定义输出参数
    参数通过引用来传递。ref要求变量必须在传递前初始化。而out参数不用初始化。
    必须声明和调用方都显示使用 out
    int value;
    g.test3(out value);
    public void test3(out int i) {
    i = 66;
    }
    

      

     
     
     
     
  • 相关阅读:
    [ARC101C] Ribbons on Tree
    NOIP2020 模拟赛 B 组 Day6
    #10471. 「2020-10-02 提高模拟赛」灌溉 (water)
    #10470. 「2020-10-02 提高模拟赛」流水线 (line)
    一类巧妙利用利用失配树的序列DP
    学军中学csp-noip2020模拟5
    信号与槽-高级应用
    PyQt5中的布局管理-QSplitter
    PyQt5中的布局管理-嵌套布局
    信号与槽-入门应用
  • 原文地址:https://www.cnblogs.com/gwyy/p/8028872.html
Copyright © 2011-2022 走看看