Mvs*_*vsW 3 c# extension-methods
我正在尝试一个简单的扩展方法示例,我无法增加或减少一个int.这是代码
static class ExtensionMethodsExp
{
public static void Print(this object o)
{
Console.WriteLine("This is print: {0}", o.ToString());
}
public static int Double(this int i)
{
return i * 2;
}
public static int Decrement(this int i)
{
return i--;
}
public static int Increment(this int i)
{
return i++;
}
}
Run Code Online (Sandbox Code Playgroud)
}
程序代码是
class Program
{
static void Main(string[] args)
{
int myNumber = 10;
myNumber.Print();
myNumber = myNumber.Double();
myNumber.Print();
myNumber = myNumber.Decrement();
myNumber.Print();
myNumber = myNumber.Increment();
myNumber.Print();
myNumber.Increment().Double().Print();
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在关注输出
这是印刷品:10
这是印刷品:20
这是印刷品:20
这是印刷品:20
这是印刷品:40
任何想法为什么减少或增量不应该在这里工作.有什么我想念的吗?谢谢
试试这个:
public static int Decrement(this int i)
{
return --i;
}
public static int Increment(this int i)
{
return ++i;
}
Run Code Online (Sandbox Code Playgroud)
您的代码无法正常工作的原因是您使用Increment和Decrement运算符的方式.
当你写:
return i++;
Run Code Online (Sandbox Code Playgroud)
在增量发生之前返回i的值.
试试这个:
return ++i;
Run Code Online (Sandbox Code Playgroud)
或者更好的是,这个:
return i + 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |