标签: constants

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
查看次数

如何为常量中的占位符赋值?

我有一个常量,它返回一个异常的文本.在这个常数中,我有一个占位符,我必须使用它.我该如何使用这个占位符?

这是我的代码:

public static class Messages
{
    public const string ShipDestroyed = "{0} has been destroyed";
}
Run Code Online (Sandbox Code Playgroud)

我在另一个类中使用此方法中的常量:

protected void ValidateAlive(IStarship ship)
{
    if (ship.Health <= 0)
    {
        throw new ShipException(Messages.ShipDestroyed); 
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将"ship.Name"属性放入占位符.

c# constants placeholder

-4
推荐指数
1
解决办法
590
查看次数

为什么需要在 C++ 中初始化一个 const 变量?

在 C 中,以下代码是有效的,但在 C++ 中,它需要您对其进行初始化。

const size_t s;
Run Code Online (Sandbox Code Playgroud)

在 C 中,你必须去掉常量,然后再初始化它,但它不能保证工作。但是,如果他们允许此功能存在,那么他们一定有充分的理由。那么为什么在 C++ 中会发生这种变化呢?

c c++ constants

-5
推荐指数
1
解决办法
1614
查看次数

数组声明中的“const int”和“int”有区别吗?

之间有什么区别:

int size = 10000;
Run Code Online (Sandbox Code Playgroud)

const int size = 10000;
Run Code Online (Sandbox Code Playgroud)

此代码处理数组,其中size变量名称将作为 进入数组array[size]

我如何在我的代码中使用它:

int main() {
    int size = 50000; // here is where I had const before
    int * items;
    items = new int [size];
    
    //random array for bubbleSort
    for (int i = 0; i < size; i++) {
        items[i] = rand();
    }
    
    clock_t start, end;
    assert((start = clock()) != -1);
    sort1(items, size); //bubbleSort
    end = clock();
    cout << "bubbleSort(random): " << (double)(end - …
Run Code Online (Sandbox Code Playgroud)

c++ arrays integer constants

-5
推荐指数
1
解决办法
2万
查看次数

C11和开关盒标签中的常量表达式评估

关注这个问题为什么gcc不允许将const int作为case表达式?,什么促销类型用于switch-case表达式比较基本相同或者有没有办法在C中使用具有常量索引的常量数组作为开关案例标签?.

从第一个链接,我试图替换:

case FOO:                       // aka 'const int FOO = 10'
Run Code Online (Sandbox Code Playgroud)

用:

case ((int) "toto"[0]):         // can't be anything *but* constant
Run Code Online (Sandbox Code Playgroud)

这使 :

https://ideone.com/n1bmIb - > https://ideone.com/4aOSXR =在C++中工作

https://ideone.com/n1bmIb - > https://ideone.com/RrnO2R = C失败

我不太明白,因为"TOTO"字符串不能是任何东西,但一个常数之一,它甚至不是一个变量,它位于编译器内存的空白.我甚至没有玩C语言的'const'模糊逻辑(它实际上代表"只读,不是常数,你期望什么?"),问题是"数组访问"或"指针引用" "进入一个不用C语言评估的常量表达式,但在C++中做得很好.

我希望使用这个"技巧"来使用HASH_MACRO(str)从密钥标识符生成唯一的case标签值,最终使编译器在发生冲突时引发错误,因为找到了类似的标签值.

好的,好的,我被告知这些限制是为了简化语言工具(preproc,编译器,链接器)而C不是没有LISP,但你可以拥有全功能的LISP解释器/编译器,其大小只相当于C等价物的一小部分,所以这不是借口.

问题是:C11是否有"扩展",只允许这个"toto"东西在GCC,CLANG和...... MSVC中工作?我不想去C++路径(typedef的前向声明不再起作用)和嵌入式东西(因此编译时哈希计算用于时空失真).

是否有一种中间的"C +"语言更加"宽容"和"理解"嵌入更好一点,比如 - 赞美领主 - "作为位域成员的枚举",以及我们不能拥有的其他很好的东西(由于以外的原因)现实标准像沙漠太阳下的蜗牛一样演变?

#provemewrong,#changemymind,#norustplease

c c++ constants switch-statement constant-expression

-5
推荐指数
1
解决办法
433
查看次数

const struct {x} vs struct {const x}

这是一个相当简单的问题,但不知何故很难找到一个简单的答案.

在C++中,(编辑)const修改的结构变量和(编辑:)非const结构变量之间的区别是什么,但结构具有所有const成员?:

typedef struct mystruct {
    const int x;
} t1;
const t1 s1;
Run Code Online (Sandbox Code Playgroud)

VS

typedef struct {
    int x;
} t2;
const t2 s2;
Run Code Online (Sandbox Code Playgroud)

?(如果答案是"与课程相同",那么请为课程解释或链接到解释.)

c++ struct const constants

-7
推荐指数
2
解决办法
1363
查看次数

C++“const”关键字的意义是什么?

使用关键字有什么意义const?例如,在制作游戏时,首先要做的事情之一就是设置游戏的宽度和高度。大多数时候你会使用例如:

const int Width
Run Code Online (Sandbox Code Playgroud)

const int height
Run Code Online (Sandbox Code Playgroud)

现在我知道你应该这样做,因为屏幕的宽度和高度在整个游戏过程中不会改变,但这样做有什么意义呢?你可以在不使用 const 的情况下做同样的事情,它会工作得很好。

这只是一个例子。所以我现在感到困惑的是:

const如果您无论如何都不会更改变量,那么在任何地方使用关键字有什么意义呢?

c++ constants

-8
推荐指数
1
解决办法
2695
查看次数

增量后常量的输出值是多少

在常量递增后将输出什么

int main(){
   const int i = 5;
   i++;
   printf("%d",i);

}
Run Code Online (Sandbox Code Playgroud)

代码是用c ++编写的.

c++ constants

-11
推荐指数
1
解决办法
2518
查看次数