为什么我不能访问其他类中的公共const c#

本文关键字:const 不能 访问 其他 为什么 | 更新日期: 2023-09-27 18:04:32

我试图在Test.cs中访问我的其他类TerminalStrings.cs中的字符串,但无法....我怎样才能访问它们?

TerminalStrings.cs:

namespace RFID_App
{
    class TerminalStrings
    {
        public static readonly string identiError = "ERROR";
        public const string identiSuccess = "SUCCESS";
    }
}
在Test.cs:

 namespace RFID_App
    {
          class Test
        {
            public Test()
            {
               string test;
               TerminalStrings stringlist = new TerminalStrings();
               test = stringlist.identiError; //this was not possible 
            }
        }
    }

为什么我不能访问其他类中的公共const c#

const是隐式静态的,您不能使用实例成员访问它们,而是需要类名来访问。

test = TerminalStrings.identiError;

参见:为什么不能同时使用static和const ?- By Jon Skeet

const s不是成员变量,它们在类上。

string test = TerminalStrings.identiError;

c#中的常量自动为static。它们不是实例数据的一部分,而是本身的一部分——毕竟,stringliststringlist2没有不同的副本。

访问TerminalStrings.identiError:

public Test()
{
   string test;
   test= TerminalStrings.identiError;
}