c#虚方法
namespace ConsoleApp2
{ public class myclass1 { public virtual void virtualmethod ( ) { Console. WriteLine ( "这是myclass1一个虚方法" ) ; } public virtual void virtualmethod2 ( ) { Console. WriteLine ( "这是myclass1一个非虚方法" ) ; } } public class myclass2 : myclass1 { public override void virtualmethod ( ) { Console. WriteLine ( "这是myclass2一个新的虚方法" ) ; } public new void notvirualmethod ( ) { Console. WriteLine ( "这是myclsses2一个新的非虚方法" ) ; } } internal class Program { static void Main ( string [ ] args) { myclass1 a = new myclass1 ( ) ; a. virtualmethod ( ) ; a. virtualmethod2 ( ) ; myclass2 b = new myclass2 ( ) ; b. virtualmethod ( ) ; b. virtualmethod2 ( ) ; b. notvirualmethod ( ) ; a = b; a. virtualmethod ( ) ; a. virtualmethod2 ( ) ; } }
}
函数的重载
namespace ConsoleApp2
{ internal class Program { static void copute_area ( int r) { double area = System. Math. PI * r * r; Console. WriteLine ( "圆的面积{0}" , area) ; } static void copute_area ( int a, int b) { double area = a * b; Console. WriteLine ( "长方形的面积是{0}" , area) ; } static void Main ( string [ ] args) { int r= 2 ; copute_area ( r) ; int a= 1 , b= 2 ; copute_area ( ( int ) a, b) ; } }
}
结构体
namespace ConsoleApp2
{ public struct Clerk { public string name; public int age; public void write ( ) { Console. WriteLine ( "我的名字叫{0},年龄是{1}" , this . name, this . age) ; } } internal class Program { static void Main ( string [ ] args) { Clerk zs; zs. age = 5 ; zs. name = "李明" ; zs. write ( ) ; } }
}