我在.Net中首次遇到運算符重載問題,早已將它用在C++中,但那就像超載運算符(如「+」),現在我突然想到如下所示。.net運算符重載?類型轉換運算符,它的工作原理是什麼?
我有一個結構AccessToken
:
[StructLayout(LayoutKind.Sequential)]
public struct AccessToken : IConvertible
{
private string _value;
public AccessToken(string encodedAccessToken)
{
this._value = encodedAccessToken;
}
public static implicit operator AccessToken(string encodedAccessToken)
{
return new AccessToken(encodedAccessToken);
}
}
我明白了第一種方法是構造函數,但我不知道究竟:第二個是幹什麼的?肯定有某種操作符重載。我讀http://msdn.microsoft.com/en-us/library/s53ehcz3(v=vs.71).aspx,但無法得到確切的想法。
要做這樣的事情「AccessToken令牌= foo」我想我們必須重載=運算符。 – Pritesh 2012-04-25 06:38:46
@Pritesh你不能在C#中重載'='。反正它有些不同。它還允許您將一個字符串傳遞給一個具有'AccessToken'作爲參數的方法。 – CodesInChaos 2012-04-25 06:40:33
@Pritesh:你不應該從Google的業餘愛好中推斷Google對技術的使用。你在想什麼? – 2012-04-25 06:41:48