[英]Setting the default `String` value of an object in C#
我對C#比較新,所以默認值的概念對我來說有點混亂。
我目前有一個包含兩個String
值的對象, serialNumber
和fullPath
。 這是一個簡單的對象,只包含這兩個字符串和相應的getter方法(在創建對象后不會更改它們;因此沒有setter方法)。
我想將這些對象的List放入CheckedListBox
。 我希望盒子只顯示序列號,而不是完整路徑。 根據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;
}
}
string
或String
的默認值default(string)
為null
,但這不是文檔引用的內容。 它引用了對象的ToString()
值, 您可以覆蓋它 。
嘗試這樣的東西,使用真正的 C#約定(看看它的可讀性!),還要注意override
關鍵字 :
public class ModuleData
{
public ModuleData(string serialNumber, string fullPath)
{
SerialNumber = serialNumber;
FullPath = fullPath;
}
public string SerialNumber { get; private set; }
public string FullPath { get; private set; }
public override string ToString()
{
return SerialNumber;
}
}
要獲取類實例的字符串表示形式,請重寫ToString方法,以返回所需的值。 在您的代碼中,您編寫toString()(小寫T),因此C#區分大小寫它不是正確的覆蓋。
只需改為
public override string ToString()
{
return serialNumber;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.