【发布时间】:2012-10-29 10:15:07
【问题描述】:
我的代码需要设置我的类的一个字段,但我希望该字段只设置一次。如果开发人员尝试重置/更改它,理想情况下我希望编译器告诉我们关闭而不是出现运行时错误。这可能吗?
帮助解释的代码
internal class Message
{
private string title = string.Empty;
public string Title
{
get { return title; }
set
{
if (string.IsNullOrEmpty(title))
title = value;
else
throw new Exception("Title can only be set once!");
}
}
}
如您所见,上面会抛出异常,但这是运行时错误。尽管此处的示例相当简单,但编写编译器错误或警告消息的概念可能非常有益。
【问题讨论】:
-
readonly不够用怎么办? -
程序无法编译;如果我创建“私有只读字符串标题”或“公共只读字符串标题”,我会收到错误消息“修饰符 'readonly' 对此项目无效'
-
那么显然有一些错误。请发布不起作用的代码。
-
就是代码!如果我将'private readonly string title = string.Empty'设为私有(或者如果我将其更改为'private readonly string title;')我会收到消息:“修饰符'readonly'对此项目无效”。如果我将公共字符串标题设为只读(公共只读字符串标题),则消息为“无法将只读字段分配给(在构造函数或变量初始化程序中除外)”
-
查看这里的想法和背景:stackoverflow.com/questions/6266031/…
标签: c# compiler-errors runtime-error