C# 那些可以重载 .那些不可以重载?

我看到有人可以重载tostring().可以重载+-*/

C#最常见的重载是构造函数重载,各种方法方法包括ToString()也可以重载,运算符+-*/也可以重载。
使用运算符重载时,必须用以下的方式声明:
public static结果类型operator运算符(参数)
这里operator是关键字,结果类型通常就是类本身或void型。operator关键字用于在类或结构声明中声明运算符。运算符声明可以采用下列四种形式之一:
public static result-type operator unary-operator ( op-type operand )
public static result-type operator binary-operator (
op-type operand,
op-type2 operand2
)
public static implicit operator conv-type-out ( conv-type-in operand )
public static explicit operator conv-type-out ( conv-type-in operand )
运算符只能采用值参数,不能采用ref或out参数。任何运算符声明的前面都可以有一个可选的属性列表。
C# 允许用户定义的类型通过使用operator关键字定义静态成员函数来重载运算符。但不是所有的运算符都可被重载。若要在自定义类中重载运算符,需要在该类中创建具有正确签名的方法。该方法必须命名为operator X,其中X是正在重载的运算符的名称或符号。一元运算符具有一个参数,二元运算符具有两个参数。在每种情况下,参数的类型必须与声明该运算符的类或结构的类型相同。如下面的示例所示:
public static Complex operator +(Complex c1, Complex c2)
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-03
C#函数重载

我们以前在C++中曾经知道C++中有函数重载的概念,现在在ASp.Net的C#中我们仍然可以使用函数重载的概念和定义:

假设我们在程序中定义了两个函数:String test(String str1) 而后 int test1(int i),他们的内容都是很简单的功能

Stringtest(Stringstr1){ Response.Write("函数重载测试,这个是String函数"); Return"123232"; } inttest(inti){ Response.Write("函数重载测试,这个是int函数"); Return1; } 我们调用 test("豆腐") 和 test(888),编译器非但不会报错,而且会执行出不同的结果,这样。

C#函数重载给我们在编程的过程中带来了很大的方便,我们可以由编译器来决定根据我们参数的变化相应的执行不同的代码。而且 这个也是 面向对象编程的一个主要的特色之一。相信MS的确想让ASP.Net成为Web未来编程的规范。以上介绍C#函数重载。

C# 那些可以重载 .那些不可以重载?
C#最常见的重载是构造函数重载,各种方法方法包括ToString()也可以重载,运算符+-*\/也可以重载。使用运算符重载时,必须用以下的方式声明:public static结果类型operator运算符(参数)这里operator是关键字,结果类型通常就是类本身或void型。operator关键字用于在类或结构声明中声明运算符。运算符声明可以采用...

C# 那些可以重载 .那些不可以重载?
所以,所有方法和函数都能被重载。+ - × \/可以理解为一个方法(它是操作符),也可以重载。不过重载方式有点特殊。

可否重载c#的nameof符号?
不可重载。在C# 6.0中,nameof()不是运算符,因此无法重载。C# 6的所有运算符列表中并未包括这个名字。可重载的运算符包括:+ - ! ~ ++ -- true false等,但不包括true和false,尽管它们在表达式中不显式使用,但因涉及条件表达式、条件运算符和条件逻辑运算,因此被视为运算符。可重载的二元运...

C#返回类型不同是否为方法重载?
因此重载对返回值没有要求,可以相同,也可以不同 但是如果参数的个数、类型、次序都相同,方法名也相同,仅返回值不同,则无法构成重载 如:public int A(int i);public double A(int i);这2个方法不能构成重载,会有编译错误。而:public int A(int i):public double A(double i);这2个方...

c#什么是重载
用简单明了的一句话来回答你,就是有n个同名的方法,但是你调用指定方法的时候程序会按照你的意思自动找出,那么程序怎么在同名的方法中找出你要调用的那个方法呢,这就是重载了。楼主是初学者,大家回答问题的时候就方便直接点吧

C#中简述方法覆盖(override)与重载(overload)的异同
1、方法名、参数、返回值相同。2、子类方法不能缩小父类方法的访问权限。3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。4、存在于父类和子类之间。5、方法被定义为final不能被重写。overload(重载)1、参数类型、个数、顺序至少有一个不相同。2、不能重载只有返回值不同的...

构造器能否被重写?能否被重载?能否被继承?
构造器就是构造方法,能够被重载(同类中不同参数列表的构造器),不能够被重写(子类使用super方法可以调用)。不能说能被继承,因为能够调用,但是不能重写。构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以...

C#中多态与重载的区别
{ public void Hello(){ } public void Hello(string str){ } public string Hello(){ } } 在这段代码中有三个具有相同名称的方法Hello,他们彼此之间是重载的关系,注意两点:他们共同存在于一个类中,虽有同样的名字但是执行不同的操作;第一个方法和第三个方法只有返回类型不同,这在C# 中是...

C#中重载是什么意思???
具有相同的方法名,只要其使用的参数个数或是参数类型不同,编译器变能够根据实参的不同确定在哪种情况下调用哪个方法,这就构成了方法的重载。方法的重载方式主要有两种:参数个数不同的重载。参数是不同类型的重载。如:class Add { \/\/计算两个int类型变量的和 public int Sum(int para...

C#中什么时候选择用重写和重载?为什么用?有什么区别?
重载表示改写该函数,比如重载+号运算符,让他具有乘法的功能,2+3=6 但是重载之后,他的运算优先级还是不会改变的,5-2+3=9 而重写表示完全改变这个函数,如果重写+号运算符,让他具有乘法的功能,2+3=6 同时,他的优先级你可以让他改变为最高,这样的话5-2+3=-1 :)...

相似回答