修饰符的用法,修饰符的用法详整
分类:计算机编程

1. 只有C#置于类型(int,double,long等)能够注脚为const;结果、类和数组不可能声称为const。

1.const是不改变常量,在编写翻译的时候就供给有明显的值,只好用来数值和字符串,可能援引类型只好为null.(这里怎么要把字符串单独拿出去?是因为字符串string是引用类型,可是利用的时候却感到是值类型,它是大器晚成种特其余引用类型,后边会详细说),struct也无法用const标识。const能够修饰class的字段大概有个别变量,不能够修饰属性。而readonly仅仅用于修饰class的字段,不能修饰属性。const是归于类等级并非实例对象等第,无法跟static一齐利用。而readonly不仅能够是类品级也足以是实例等级,它能够与static一起使用。

  1. readonly 是在字段上使用的修饰符,间接以类名.字段访问。

  2. const 必得在注明中初步化。之后不可能再修正。

 

4. readonly可以在表达中伊始化,也得以在结构函数中早先化,其余情形不可能改革。

2.readonly是只读的情趣,表示不可能实行写操作。最入眼的是它在程序运营时才会去求值。它可以是任意档期的顺序,当然能够是object,数组,struct,它必需在布局函数或许初始化器中开首化,初阶化完毕未来不能够被修改。平日能够定义二个readonly值为DateTime的常量。而const却无能为力钦赐为DateTime类型。

namespace const_and_readonly
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Half a year have {0} Moths", Calendar.Moths/2); //直接类名.字段访问const字段
            Calendar test1 = new Calendar();
            Console.WriteLine("Every year has {0} weeks and {1} days", test1._weeks, test1._days);//readonly字段通过实例访问
            Calendar test2 = new Calendar(31, 4);
            Console.WriteLine("January has {0} weeks and {1} days", test2._weeks ,test2 ._days);
            Console.ReadKey();
        }
    }
    class Calendar
    {
        public const int Moths = 12;  //const必须在声明中初始化
        public  readonly int _days=365;   //readonly在声明中初始化
        public  readonly int _weeks;
        public Calendar()                   //readonly在构造函数内初始化
        {
            _weeks = 52;
        }
        public Calendar(int days,int weeks)  //readonly在构造函数内初始化
        {
            _days = days;
            _weeks = weeks;
        }
        public void setvalue(int days,int weeks)
        {
           // _days = days;  无法对只读字段赋值
            //_weeks = weeks; 无法对只读字段赋值
        }

    }

1. 只有C#松开类型(int,double,long等)能够注明为const;结果、类和数组不可能声称为const。

  

  1. readonly 是在字段上利用的修饰符,直接以类名.字段访谈。

  2. const 必得在表明中开始化。之后不可能再改善。

4. readonly得以在表达中初步化,也可以在布局函数中开始化,其它情状不能够改改。

readonly修饰的字段,其开头化仅是定位了其引述(地址不能够校勘),但它援用的对象的品质是足以修正的。

namespace const_and_readonly
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Half a year have {0} Moths", Calendar.Moths/2); //直接类名.字段访问const字段
Calendar test1 = new Calendar();
Console.WriteLine("Every year has {0} weeks and {1} days", test1._weeks, test1._days);//readonly字段通过实例访问
Calendar test2 = new Calendar(31, 4);
Console.WriteLine("January has {0} weeks and {1} days", test2._weeks ,test2 ._days);
Console.ReadKey();
}
}
class Calendar
{
public const int Moths = 12; //const必须在声明中初始化
public readonly int _days=365; //readonly在声明中初始化
public readonly int _weeks;
public Calendar() //readonly在构造函数内初始化
{
_weeks = 52;
}
public Calendar(int days,int weeks) //readonly在构造函数内初始化
{
_days = days;
_weeks = weeks;
}
public void setvalue(int days,int weeks)
{
// _days = days; 无法对只读字段赋值
//_weeks = weeks; 无法对只读字段赋值
}
}

 

本文由pc28.am发布于计算机编程,转载请注明出处:修饰符的用法,修饰符的用法详整

上一篇:鱼龙混杂,数据结构 下一篇:没有了
猜你喜欢
热门排行
精彩图文