您可以使用運算符重載來模擬賦值行爲。這樣目標類也定義了部件的大小,因此每個類必須知道輸入的外觀。這是比VB示例更多的代碼。
示例(語法可能是不正確的,我用運算符重載很少):
class DataItem
{
public String Name {get;set;}
public String Address {get;set;}
public String Comment {get;set;}
public static implicit operator DataItem(string value)
{
DataItem item = new DataItem();
item.Name = string.Substring(0, 10).Trim();
item.Address = string.Substring(10, 25).Trim();
item.Comment = string.Substring(25, 45).Trim();
return item;
}
}
[...]
DataItem item = sampleString;
[...]
更具可讀性的選擇將是一個隱含的創造者模式:
class DataItem
{
public String Name {get;set;}
public String Address {get;set;}
public String Comment {get;set;}
public static DataItem FromString(String string)
{
DataItem item = new DataItem();
item.Name = string.Substring(0, 10).Trim();
item.Address = string.Substring(10, 25).Trim();
item.Comment = string.Substring(25, 45).Trim();
return item;
}
}
[...]
DataItem item = DataItem.FromString(sampleString);
[...]
謝謝。這段代碼正是我所需要的。 – Nap 2010-06-11 00:50:53