相关疑难解决方法(0)

c#中的常量和只读?

可能重复:
const和readonly有什么区别?

我对c#有疑问,常数和readonly解释与简单问题或任何参考有什么区别.

c#

1
推荐指数
1
解决办法
897
查看次数

如何在 C# 中创建常量哈希集

现在我有一个 const 字符串数组并循环检查是否存在一个值。但我想要一种更有效的方式来存储我的价值观。我知道有一个哈希集可以这样使用:

HashSet<string> tblNames = new HashSet<string> ();
tblNames.Add("a");
tblNames.Add("b");
tblNames.Add("c");
Run Code Online (Sandbox Code Playgroud)

但是,是否可以像这样使它成为我班级的常量成员:

public const HashSet<string> tblNames = new HashSet<string>() { "value1", "value2" };
Run Code Online (Sandbox Code Playgroud)

c# hashset

1
推荐指数
1
解决办法
3244
查看次数

C#放弃const以便在非静态上下文中使用

我在C#类中有以下只读字符串.

private readonly string someString= "I am a string.";
Run Code Online (Sandbox Code Playgroud)

我觉得将此转换为a的冲动是const因为信息在编译时可用.但是,我有它readonly因为我在非静态上下文中使用它.

这是正确的做法吗?或者我的代码设计有问题?

c#

0
推荐指数
1
解决办法
1689
查看次数

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# ×4

class ×1

constants ×1

hashset ×1