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();
}
}
}