似乎很奇怪,但有没有办法将变量声明或转换为constante,如:
string myVariable = "MyString";
const string myConstant = myVariable ;
我需要这个来回答我的问题: linq to sql startwith performance indexed columns
感谢
答案 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 ;