我在.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