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

.NET 中的 常量字段const應(yīng)用介紹

 更新時間:2013年01月10日 11:55:59   作者:  
C#中,當(dāng)使用常數(shù)符號const時,編譯器首先從定義常數(shù)的模塊的元數(shù)據(jù)中找出該符號,并直接取出常數(shù)的值,接下來詳細介紹,感興趣的朋友可以參考下

C#中,當(dāng)使用常數(shù)符號const時,編譯器首先從定義常數(shù)的模塊的元數(shù)據(jù)中找出該符號,并直接取出常數(shù)的值,然后將之嵌入到編譯后產(chǎn)生的IL代碼中,所以常數(shù)在運行時不需要分配任何內(nèi)存,當(dāng)然也就無法獲取常數(shù)的地址,也無法使用引用了。

如下代碼:

復(fù)制代碼 代碼如下:

public class ConstTest
{
public const int ConstInt = 1000;
}

將其編譯成ConstTest.dll文件,并在如下代碼中引用此ConstTest.dll文件。
復(fù)制代碼 代碼如下:

using System;
class Program
{
public static void Main(string[] args)
{
Console.WriteLine(ConstTest.ConstInt);//結(jié)果輸出為1000;
}
}

編譯運行此Main.exe程序,結(jié)果輸出為1000。之后將bin文件夾中的ConstTest.dll引用文件刪除,直接運行Main.exe文件,程序運行正常,結(jié)果輸出1000。

如果將ConstTest重新定義為:
復(fù)制代碼 代碼如下:

public class ConstTest
{
//只能在定義時聲明
public const int ConstInt = 1000;
public readonly int ReadOnlyInt = 100;
public static int StaticInt = 150;
public ConstTest()
{
ReadOnlyInt = 101;
StaticInt = 151;
}
//static 前面不可加修飾符
static ConstTest()
{
//此處只能初始化static變量
StaticInt = 152;
}
}

重新編譯成ConstTest.dll并向調(diào)用程序Main添加此引用后,再編譯調(diào)用程序,生成新的Main.exe,即使再次刪除ConstTest.dll文件后,Main.exe運行正常,結(jié)果輸出1000。

將Main程序更改如下:
復(fù)制代碼 代碼如下:

class Program
{
public static void Main(string[] args)
{
Console.WriteLine(ConstTest.ConstInt);//輸出1000
Console.WriteLine(ConstTest.StaticInt);//輸出152
ConstTest mc = new ConstTest();
Console.WriteLine(ConstTest.StaticInt);//輸出151
}
}

重新編譯Main程序,如果此時再把ConstTest.dll刪除,則會報錯。

如此可以看出,如果某些工程引用到了ConstTest.dll,如果后來因為變動,改變了ConstInt常量的值,即使引用重新編譯的ConstTest.dll,也無法更改Main.exe中的數(shù)據(jù)(可以把ConstInt值改為其它值,然后將編譯后的ConstTest.dll拷貝到Main.exe的bin文件夾下試試看),這時,只能添加ConstTest.dll引用,并且重新編譯Main程序才行。

相關(guān)文章

  • 一步步教你在Asp.net Mvc中使用UEditor編輯器

    一步步教你在Asp.net Mvc中使用UEditor編輯器

    大家都知道ueditor是百度編輯器,目前使用也比較廣泛,下面這篇文章主要是通過一步步的步驟教大家在Asp.net Mvc中使用UEditor編輯器,需要的朋友可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • .NET使用YARP根據(jù)域名轉(zhuǎn)發(fā)實現(xiàn)反向代理

    .NET使用YARP根據(jù)域名轉(zhuǎn)發(fā)實現(xiàn)反向代理

    這篇文章介紹了.NET使用YARP根據(jù)域名轉(zhuǎn)發(fā)實現(xiàn)反向代理的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • C#中efcore-ShardingCore呈現(xiàn)“完美”分表

    C#中efcore-ShardingCore呈現(xiàn)“完美”分表

    本文簡單的介紹了efcore的分表,著重介紹了efcore下最完美的分表組件ShardingCore,可以幫助大家更好的學(xué)習(xí),感興趣的小伙伴可以參考一下
    2021-08-08
  • System.Web.Routing入門及進階

    System.Web.Routing入門及進階

    上面介紹的是最簡單的一種定義方式。當(dāng)然我們可以建立更復(fù)雜的規(guī)則。其中就包括設(shè)定規(guī)則的默認(rèn)值以及設(shè)定規(guī)則的正則表達式
    2011-12-12
  • ASP.NET?MVC開發(fā)接入微信公共平臺

    ASP.NET?MVC開發(fā)接入微信公共平臺

    這篇文章主要為大家介紹了微信平臺開發(fā)ASP.NET?MVC接入微信公共平臺實現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • asp.net core集成JWT的步驟記錄

    asp.net core集成JWT的步驟記錄

    這篇文章主要給大家介紹了關(guān)于asp.net core集成JWT的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用asp.net core具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • ASP.NET Web API教程 創(chuàng)建Admin控制器實例分享

    ASP.NET Web API教程 創(chuàng)建Admin控制器實例分享

    在本文中我們要添加一個對產(chǎn)品支持CRUD(創(chuàng)建、讀取、更新和刪除)操作的Web API控制器,需要的朋友可以參考下
    2012-11-11
  • .NET中的Husky工具及安裝方式

    .NET中的Husky工具及安裝方式

    Husky.Net它支持兩種安裝方式,分別是全局安裝和本地安裝,接下來通過本文給大家介紹.NET中的Husky工具安裝過程,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • EF使用數(shù)據(jù)注解特性創(chuàng)建表結(jié)構(gòu)

    EF使用數(shù)據(jù)注解特性創(chuàng)建表結(jié)構(gòu)

    本文詳細講解了EF使用數(shù)據(jù)注解特性創(chuàng)建表結(jié)構(gòu)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • VS2012下QT creator登錄對話框設(shè)計

    VS2012下QT creator登錄對話框設(shè)計

    這篇文章主要為大家詳細介紹了VS2012下QT creator登錄對話框的設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評論