小编Psy*_*ula的帖子

C#中的常量类变量

我想在我的班级中声明一个变量,以后不能像这样更改:

obj myobj=new obj()
myobj.CONSTANT_VAR="Changed value" //ERROR!!
Run Code Online (Sandbox Code Playgroud)

...但其值可以像这样访问:

Console.WriteLine(myobj.CONSTANT_VAR)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

public class obj{
    public int a, b;
    public const string CONSTANT_VAR;
    public obj(int x,int y){
        a=x;
        b=y;
        CONSTANT_VAR=1/(a*((""+a).Length)+3/(b*((""+b).Length)).ToString();
    }
    public int do(){
        return this.a+this.b-(CONSTANT_VAR).Length;
    }
}
class DriverClass(){
    static void Main(){
        obj myObj=new obj(2,3);
        myObj.a=34;
        myObj.b=35;
        myObj.CONSTANT_VAR="changed ur string lol"; //i want it to print error
      
        Console.WriteLine(CONSTANT_VAR); //no error
        Console.WriteLine(myObj.add());
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息:

constants must have a value assigned
Run Code Online (Sandbox Code Playgroud)

但我不想事先给它赋值..... 我该怎么办?

c# class constants

-3
推荐指数
1
解决办法
153
查看次数

标签 统计

c# ×1

class ×1

constants ×1