欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2022年08月03日 08:41:13   作者:Darren Ji  
本文詳細(xì)講解了C#中的const和readonly關(guān)鍵字,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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

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類型變量是編譯期變量,無(wú)法把運(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修飾符

到此這篇關(guān)于C#關(guān)鍵字const和readonly的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論