C# 运算符重载是怎么一回事,一般哪里用,起什么作用?

问题描述:

C# 运算符重载是怎么一回事,一般哪里用,起什么作用?
请达人通俗阐述,并加以示例,
1个回答 分类:综合 2014-10-24

问题解答:

我来补答
+-*/这样的运算符重定义,比如你自定义了一个类a,然后你可以自己重载它的这些运算符,比如+返回什么,-返回什么等等.
public class a{
public string t{get;set;}
public static a operator +(a a1,a a2)
{
a b=new a();
b.t=a1.t+a2.t;
return b;
}
}
大概这个意思.
再问: 大侠,说真的没看明白,能不能更通俗点
再答: 像这样,如你现在创建了一个自定义类叫 苹果,正常情况下,如果你定义二个变量 苹果A和苹果B实例化它们,然后你想知道 苹果A-苹果B 能得到什么,默认这二个变量是不能直接运算的,如果你要实现 苹果 类的 "-" 运算,那么你必须重载它的 运算符"-",然后自己在里面实现你的操作。 比如 你可以实现说两个不同的菜果相减返回一个烂苹果或返回null
再问: 大侠,能否就你说的这个苹果类,对其的“-”运算符进行重载,结果得出两个苹果的质量差,烦请您在写出这个Demo,最好写详细点,加个注释什么的,谢谢了,就当带个徒弟咯, (*^__^*) 嘻嘻……
再答: public class Apple{ public decimal Weight{get;set;} public static decimal operator +(Apple a1, Apple a2) { return a1.Weight-a2.Weight; } } Apple a=new Apple{Weight=200}; Apple b=new Apple{Weight=300}; Console.Write(b-a); 试试这个可以不。
再问: 谢谢,为了这个问答更完美,我修改下回答者得一些疏漏: 上面代码第三行应该是“-”号,更正下 public static decimal operator - (Apple a1, Apple a2) 下面这三句应该放在Main()函数中,这样就完美了 --------------------------------- Apple a=new Apple{Weight=200}; Apple b=new Apple{Weight=300}; Console.Write(b-a); --------------------------------
 
 
展开全文阅读
剩余:2000
上一页:高数一指数函数
下一页:必修五第四单元