Csharp/C Sharp by API/System/InvalidCastException

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

InvalidCastException.Message

<source lang="csharp"> using System; using System.Collections; class Album : IComparable, ICloneable {

   private string _Title;
   private string _Artist;
   public Album(string artist, string title) {
       _Artist = artist;
       _Title = title;
   }
   public string Title {
       get {
           return _Title;
       }
       set {
           _Title = value;
       }
   }
   public string Artist {
       get {
           return _Artist;
       }
       set {
           _Artist = value;
       }
   }
   public override string ToString() {
       return _Artist + ",\t" + _Title;
   }
   public int CompareTo(object o) {
       Album other = o as Album;
       if (other == null)
           throw new ArgumentException();
       if (_Artist != other._Artist)
           return _Artist.rupareTo(other._Artist);
       else
           return _Title.rupareTo(other._Title);
   }
   public object Clone() {
       return new Album(_Artist, _Title);
   }

} public class foo {

   public foo() {
       myString = "Test";
   }
   private string myString;

} class MainClass {

   static void Main(string[] args) {
       ArrayList arr = new ArrayList();
       arr.Add(new Album("G", "A"));
       arr.Add(new Album("B", "G"));
       arr.Add(new Album("S", "A"));
       arr.Sort();
       arr.Insert(0, new foo());
       try {
           foreach (Album a in arr) {
               Console.WriteLine(a);
           }
       } catch (System.InvalidCastException e) {
       }
   }

}

 </source>