避免'const'声明中的开销

RKh*_*RKh 1 c#

我用这种方式声明了一个const:

const string DatabaseFilePath = 
String.Format(System.Windows.Forms.Application.StartupPath + @"\Data Files\");
Run Code Online (Sandbox Code Playgroud)

我担心第一个"字符串"和第二个"String.Format"可能会增加一些开销.如果是真的,建议一个更好的方法来写这个.

Dar*_*rov 6

我用这种方式声明了一个const:

不,你没有.除非你使用其他语言(不是C#),否则甚至不会编译.

你可能意味着一个只读字段:

private readonly string DatabaseFilePath = 
    Path.Combine(Application.StartupPath, "Data Files");
Run Code Online (Sandbox Code Playgroud)

另请注意Path.Combine的用法,而不是string.Format.


SLa*_*aks 5

您的声明是编译器错误.
const字段必须是编译时常量; 他们不能有方法调用.

相反,你需要建立static readonly领域.

此外,您应该使用路径字符串组合Path.Combine,这将正确处理\.

将其更改为

static readonly string DatabaseFilePath = Path.Combine(Application.StartupPath, @"Data Files\");
Run Code Online (Sandbox Code Playgroud)