将变量转换为常量

时间:2014-09-19 16:02:43

标签: c# variables constants

似乎很奇怪,但有没有办法将变量声明或转换为constante,如:

string myVariable = "MyString";
const string myConstant = myVariable ;

我需要这个来回答我的问题: linq to sql startwith performance indexed columns

感谢

7 个答案:

答案 0 :(得分:4)

没有办法为Const执行此操作。在编译时将Const值直接刻录到调用站点中,而是将其设为readonly并在构造函数中分配

类似

string myVariable = "MyString";
readonly  string myConstant="test" ; 
public MyClass()
{ 
myConstant= myVariable ;
}

答案 1 :(得分:1)

不,您无法使用变量值初始化常量。

必须在编译时知道常量,并且直到运行时才知道变量的值,从概念上讲它是不可能的。

答案 2 :(得分:0)

不,您无法使用变量初始化字段。编译器可能会重新排列这些初始化的顺序,myConstant可以先被初始化,在这种情况下myVariable将不会被设置。

答案 3 :(得分:0)

常量不能变化,因为它们不是将变量设置为变量的变量会改变它。所以答案至少不是在运行时。

也许你只是想要一些不能设置很多地方的东西,然后readonly可能会起作用。

参考:http://msdn.microsoft.com/en-us/library/acdd6hb7.aspx

public readonly string _myROString = "set once";

答案 4 :(得分:0)

好吧是不可能的。但有人找到了我最初的问题的答案而没有不变。谢谢 linq to sql startwith performance indexed columns

答案 5 :(得分:0)

这个答案并不能解决所发布的问题;但是可能满足一些喜欢以静态方式访问字符串的观众的要求,这些观众应该附加其他字符串,

public enum NameTypes
{
    First, Last
}

public static class UserDetails
{
    public static string NameText = "Name Info: " + NameTypes.First.ToString();
}

答案 6 :(得分:0)

否则,将您的第一个变量更改为如下常量:

const string myVariable = "MyString";
const string myConstant = myVariable ;