日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C#中的const和readonly關(guān)鍵字詳解_C#教程

作者:Darren?Ji ? 更新時(shí)間: 2022-09-27 編程語(yǔ)言

const和readonly經(jīng)常被用來修飾類的字段,兩者有何異同呢?

const

1、聲明const類型變量一定要賦初值嗎?

一定要賦初值

public class Student
{
    public const int age;
}

生成的時(shí)候,會(huì)報(bào)如下錯(cuò):

正確的應(yīng)該這樣寫:

public class Student
{
    public const int age = 18;
}

2、聲明const類型變量可以用static修飾嗎?

不可以

public class Student
{
    public static const int age = 18;
}

生成的時(shí)候,會(huì)報(bào)如下錯(cuò):

正確的應(yīng)該這樣寫:

public class Student
{
    public const int age = 18;
}

因?yàn)閏onst默認(rèn)是static。

3、運(yùn)行時(shí)變量可以賦值給const類型變量嗎?

不可以

    public class Student
    {
        public const int age = 18;

        public Student(int a)
        {
            age = a + 1;
        }
    }

生成的時(shí)候,會(huì)報(bào)如下錯(cuò):

const類型變量是編譯期變量,無法把運(yùn)行時(shí)變量賦值給編譯期變量。

4、const可以修飾引用類型變量嗎?

可以,但只能給引用類型變量賦null值。

    public class Student
    {
        public const Teacher teacher = new Teacher();
    }

    public class Teacher
    {        
    }

生成的時(shí)候,會(huì)報(bào)如下錯(cuò):

正確的應(yīng)該這樣寫:

    public class Student
    {
        public const Teacher teacher = null;
    }

    public class Teacher
    {        
    }

readonly

1、聲明readonly類型變量一定要賦初值嗎?

不一定,既可以賦初值,也可以不賦初值。

以下不賦初值的寫法正確:

    public class Student
    {
        public readonly int age;
    }

以下賦初值的寫法也對(duì):

    public class Student
    {
        public readonly int age = 18;
    }

2、運(yùn)行時(shí)變量可以賦值給readonly類型變量嗎???

可以

以下在構(gòu)造函數(shù)中給readonly類型變量賦值是可以的:

    public class Student
    {
        public readonly int age = 18;

        public Student(int a)
        {
            age = a;
        }
    }

3、聲明readonly類型變量可以用static修飾嗎???

可以的

以下寫法正確:

    public class Student
    {
        public static readonly int age = 18;
    }

總結(jié)

const修飾符:

  • 用const修飾的變量是編譯期變量
  • 不能把運(yùn)行時(shí)變量賦值給const修飾的變量
  • const修飾的變量在聲明時(shí)要賦初值
  • const修飾的變量不能在前面加static修飾
  • cosnt也可以修飾引用類型變量,但一定要給引用類型變量賦null初值

readonly修飾符:???

  • 用readonly修飾的變量是運(yùn)行時(shí)變量
  • 可以把運(yùn)行時(shí)變量賦值給readonly修飾的變量
  • readonly修飾的變量在聲明時(shí),既可以賦初值,也可以不賦初值
  • readonly修飾的變量可以在前面加static修飾符

原文鏈接:https://www.cnblogs.com/darrenji/p/3835461.html

欄目分類
最近更新