我有一個這樣的類。帶隱式類型轉換的調用函數
public class ForeignKey {
public string Id {get;}
public TableA TableA {get;}
public TableB TableB {get;}
public static implicit operator string(ForeignKey obj){ return obj.Id; }
public override string ToString() { return Id; }
/* various operator overloads */
}
我想有它的自動類型轉換,所以我可以使用它像一個字符串。到目前爲止,我所做的事情讓我可以在沒有明確表演的情況下在很多地方使用它。但是,我無法找到一種方法來調用字符串函數,而無需進行明確的轉換。
例如,我想讓這個工作。
if (Key.EndsWith(someValue))
目前,我必須這樣做
if (((string)Key).EndsWith(someValue))
// or
if (Key.Id.EndsWith(someValue))
有沒有辦法得到它的工作,我想如何?
感謝
Key.Id已經是字符串。您的最後一個選項Key.Id.EndsWith(someValue)應該會自動工作。 – Amit
您可以使用簽名創建一個C#擴展方法public static KeyValue(this Key key){} – Amit
Right,Key.Id.EndsWith可以工作,但我希望獲得Key.EndsWith的工作。 –