【发布时间】:2014-08-16 00:56:33
【问题描述】:
我对 C# 比较陌生,所以默认值的概念让我有些困惑。
我目前有一个包含两个 String 值的对象,serialNumber 和 fullPath。它是一个简单的对象,只包含这两个字符串和各自的 getter 方法(在创建对象后它们不会被更改;因此没有 setter 方法)。
我想将这些对象的列表放入CheckedListBox。我希望该框仅显示序列号而不是完整路径。 According to MSDN,CheckedListBox 使用对象的默认 String 值。创建对象时如何将其设置为serialNumber?同样,它不应该事后改变。另外,我不是get 和set 关键字的忠实粉丝(我来自Java 背景),所以如果可能的话,我想像我一样使用更传统的getter/setter出于代码可读性的目的,在下面完成。
class ModuleData
{
private String serialNumber;
private String fullPath;
public ModuleData(String serialNumber, String fullPath)
{
this.serialNumber = serialNumber;
this.fullPath = fullPath;
}
public String getSerialNumber()
{
return serialNumber;
}
public String getFullPath()
{
return fullPath;
}
public String toString()
{
return serialNumber;
}
public String DefaultValue
{
return serialNumber;
}
}
【问题讨论】:
-
是ToString(),大写T
-
从长远来看,使用不同语言的约定会导致痛苦。不要用 C# 编写 Java。它们是两种不同的语言。
-
@Steve Perfect,它就像一个魅力,非常感谢。请将您的评论作为答案,以便我给予您适当的信任。
-
@audiFanatic 不应该“像魅力一样工作” - 它缺少一个非常重要的部分:
override -
这是一个有效的问题,文档指的是“默认字符串”,没有解释它是什么。
标签: c# .net default-value getter