您不能在所需對象之外創建隱式和顯式運算符。
你可以做的反而是:
public static class StringEx
{
public static Guid ToGuid(this string str)
{
Guid guid;
Guid.TryParse(str, out guid);
return guid;
}
}
而且以後你可以使用它像:
string mestring = " ... ";
Guid guid = mestring.ToGuid();
編輯:
還有另外一種方式(當然有)這是有點無用,但我會張貼在這裏:
做一個類,將包裹string
public class StringWrapper
{
string _string;
public StringWrapper(string str)
{
_string = str;
}
public static implicit StringWrapper operator(string str)
{
return new StringWrapper(str);
}
public static implicit string operator(StringWrapper strWrapper)
{
return strWrapper._string;
}
public static implicit Guid operator(StringWrapper strWrapper)
{
Guid guid;
Guid.TryParse(str, out guid);
return guid;
}
public static implicit StringWrapper operator(Guid guid)
{
return guid.ToString();
}
}
這沒用類咱們你做這樣的事情:
string str = "..";
Guid guid = (StringWrapper)str;
發生了什麼事,當你嘗試它? –
你試過了......發生了什麼? –
您不能爲現有.net類型重載運算符,您可以提供一個將'string'轉換爲'Guid'的擴展方法。 –