欢迎加我的QQ群:193522571,一起来讨论、交流!

属性中限定输入值并抛出异常

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ch10Ex01
{
   public class MyClass
   {
      public readonly string Name;
      private int intVal;

      public int Val
      {
         get
         {
            return intVal;
         }
         set
         {
            if (value >= 0 && value <= 10)
               intVal = value;
            else
               throw (new ArgumentOutOfRangeException("Val", value,
                  "Val must be assigned a value between 0 and 10."));
         }
      }
      public override string ToString()
      {
         return "Name: " + Name + "\nVal: " + Val;
      }

      private MyClass() : this("Default Name")
      {
      }

      public MyClass(string newName)
      {
         Name = newName;
         intVal = 0;
      }
   }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ch10Ex01
{
   class Program
   {
      static void Main(string[] args)
      {
         Console.WriteLine("Creating object myObj…...");
         MyClass myObj = new MyClass("My Object");
         Console.WriteLine("myObj created.");
         for (int i = -1; i <= 0; i++)
         {
            try
            {
               Console.WriteLine("\nAttempting to assign {0} to myObj.Val…...",
                                 i);
               myObj.Val = i;
               Console.WriteLine("Value {0} assigned to myObj.Val.", myObj.Val);
            }
            catch (Exception e)
            {
               Console.WriteLine("Exception {0} thrown.", e.GetType().FullName);
               Console.WriteLine("Message:\n\"{0}\"", e.Message);
            }
         }
         Console.WriteLine("\nOutputting myObj.ToString()…...");
         Console.WriteLine(myObj.ToString());
         Console.WriteLine("myObj.ToString() Output.");
         Console.ReadKey();
      }
   }
}
View Code

 

posted @ 2016-05-24 10:04  swtool  阅读(317)  评论(0编辑  收藏  举报
欢迎加我的QQ群:193522571,一起来讨论、交流!