Monday, June 13, 2005

C# Notes

  • Operator Overloading: the operator must be defined in the same type on which it performs the operation.
    private void btnStart_Click(object sender, System.EventArgs e)
    {
     MyClass myClass1 = new MyClass();
     MyClass myClass2 = new MyClass();
     myClass1.MyStringField = "Hello ";
     myClass2.MyStringField = "World!";
     // Displays: Hello World!
     MessageBox.Show((myClass1 + myClass2).MyStringField);
     // Displays: Hello 1
     MessageBox.Show((myClass1 + 1).MyStringField);
    }
    
    
    public class MyClass 
    {
     public String MyStringField = "";
     public static MyClass operator + (MyClass myClass1, MyClass myClass2) 
     {
      MyClass myClass = new MyClass();
      myClass.MyStringField = myClass1.MyStringField + myClass2.MyStringField;
      return myClass;
     }
     public static MyClass operator + (MyClass myClass, int Number) 
     {
      myClass.MyStringField += Number.ToString();
      return myClass;
     }
    }
    
  • Making sure only an interface type can access an interface's members:
      private void btnStart_Click(object sender, System.EventArgs e)
      {
       // MyMethod() not accessible from mc:
       MyClass mc = new MyClass();
       // MyMethod() is accessible from imc:
       IMyClass imc = new MyClass();
       imc.MyMethod();
      }
    
      private interface IMyClass 
      {
       void MyMethod();
      }
    
      private class MyClass : IMyClass
      {
       // This method only accessible via a IMyClass type:
       void IMyClass.MyMethod() {}
      }
    

No comments: