在C#中,可以通過定義運算符重載方法來實現運算符的重載。運算符重載方法必須聲明為public static,并且必須包含特定的關鍵字來指示對應的運算符。下面是一個簡單的例子:
class MyClass
{
public int Value { get; set; }
public MyClass(int value)
{
this.Value = value;
}
// 重載加法運算符
public static MyClass operator +(MyClass a, MyClass b)
{
return new MyClass(a.Value + b.Value);
}
}
class Program
{
static void Main()
{
MyClass a = new MyClass(5);
MyClass b = new MyClass(10);
MyClass c = a + b;
Console.WriteLine(c.Value); // 輸出15
}
}
上面的代碼中,定義了一個MyClass
類,并重載了加法運算符+
,使得可以對兩個MyClass
對象進行相加操作。在Main
方法中,創建兩個MyClass
對象,并對它們進行相加操作,最終輸出結果為15。
多態是面向對象編程中的一個重要概念,可以通過繼承和重寫方法來實現多態。在C#中,可以通過繼承父類并重寫父類方法來實現多態。下面是一個簡單的例子:
class Shape
{
public virtual void Draw()
{
Console.WriteLine("Drawing a shape");
}
}
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle");
}
}
class Rectangle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a rectangle");
}
}
class Program
{
static void Main()
{
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();
shape1.Draw(); // 輸出Drawing a circle
shape2.Draw(); // 輸出Drawing a rectangle
}
}
在上面的例子中,定義了一個Shape
類,并在其子類Circle
和Rectangle
中重寫了Draw
方法。在Main
方法中,創建了一個Shape
類型的變量,并通過多態性質,將其分別指向Circle
和Rectangle
對象,最終通過調用Draw
方法輸出不同的結果。這就是多態的體現。