C#怎么实现一元运算符++的重载,要区分前置和后置
答案:1 悬赏:70 手机版
解决时间 2021-11-07 08:55
- 提问者网友:我是女神我骄傲
- 2021-11-07 01:50
C#怎么实现一元运算符++的重载,要区分前置和后置
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-11-07 03:27
public static yourClass operator ++(yourClass value)
{
propertyType property = value.someProperty++;
yourClass newValue = new yourClass();
newValue.someProperty = property;
// 具体逻辑自己实现。
// 注意,不要修改value里任何属性的值,而是返回新的 yourClass 实例。
return newValue;
}这实现后置的++。
yourClass cls = ...;
yourClass value = cls++;MSDN上有一句话:与在 C++ 中不同,此方法并不需要直接修改其操作数的值。实际上,修改操作数的值会违反后缀增量运算符的标准语义。
前置的不用实现,编译器会根据代码上下文自动帮你完成。
追问就是说我只要重载这一个方法public static yourClass operator++(yourClass value)就能自动区分前置和后置吗
{
propertyType property = value.someProperty++;
yourClass newValue = new yourClass();
newValue.someProperty = property;
// 具体逻辑自己实现。
// 注意,不要修改value里任何属性的值,而是返回新的 yourClass 实例。
return newValue;
}这实现后置的++。
yourClass cls = ...;
yourClass value = cls++;MSDN上有一句话:与在 C++ 中不同,此方法并不需要直接修改其操作数的值。实际上,修改操作数的值会违反后缀增量运算符的标准语义。
前置的不用实现,编译器会根据代码上下文自动帮你完成。
追问就是说我只要重载这一个方法public static yourClass operator++(yourClass value)就能自动区分前置和后置吗
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯