<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FClass%2FProperties</id>
		<title>Csharp/CSharp Tutorial/Class/Properties - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FClass%2FProperties"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Properties&amp;action=history"/>
		<updated>2026-04-30T01:30:46Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Properties&amp;diff=5677&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Properties&amp;diff=5677&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Properties&amp;diff=5678&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Properties&amp;diff=5678&amp;oldid=prev"/>
				<updated>2010-05-26T12:16:11Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Add Length property to MyArray==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System; &lt;br /&gt;
 &lt;br /&gt;
class MyArray {  &lt;br /&gt;
  int[] a;&lt;br /&gt;
  int len;&lt;br /&gt;
 &lt;br /&gt;
  public bool errflag; &lt;br /&gt;
   &lt;br /&gt;
  public MyArray(int size) { &lt;br /&gt;
    a = new int[size]; &lt;br /&gt;
    len = size;  &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  public int Length { &lt;br /&gt;
    get { &lt;br /&gt;
      return len; &lt;br /&gt;
    } &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  public int this[int index] { &lt;br /&gt;
    get { &lt;br /&gt;
      if(indexCheck(index)) { &lt;br /&gt;
        errflag = false; &lt;br /&gt;
        return a[index]; &lt;br /&gt;
      } else { &lt;br /&gt;
        errflag = true; &lt;br /&gt;
        return 0; &lt;br /&gt;
      } &lt;br /&gt;
    } &lt;br /&gt;
 &lt;br /&gt;
    set { &lt;br /&gt;
      if(indexCheck(index)) { &lt;br /&gt;
        a[index] = value; &lt;br /&gt;
        errflag = false; &lt;br /&gt;
      } &lt;br /&gt;
      else errflag = true; &lt;br /&gt;
    } &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  private bool indexCheck(int index) { &lt;br /&gt;
   if(index &amp;gt;= 0 &amp;amp; index &amp;lt; Length) &lt;br /&gt;
      return true; &lt;br /&gt;
   return false; &lt;br /&gt;
  } &lt;br /&gt;
}  &lt;br /&gt;
  &lt;br /&gt;
class MainClass {  &lt;br /&gt;
  public static void Main() {  &lt;br /&gt;
    MyArray myArray = new MyArray(5); &lt;br /&gt;
    int x; &lt;br /&gt;
 &lt;br /&gt;
    for(int i=0; i &amp;lt; myArray.Length; i++) &lt;br /&gt;
      myArray[i] = i*10; &lt;br /&gt;
 &lt;br /&gt;
    for(int i=0; i &amp;lt; myArray.Length; i++) { &lt;br /&gt;
      x = myArray[i]; &lt;br /&gt;
      if(x != -1) Console.Write(x + &amp;quot; &amp;quot;); &lt;br /&gt;
    } &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
  } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;0 10 20 30 40&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Add statement to the getter and setter of a property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;public class A&lt;br /&gt;
{&lt;br /&gt;
   private int myValue;&lt;br /&gt;
   public int MyValue&lt;br /&gt;
   {&lt;br /&gt;
      get&lt;br /&gt;
      {&lt;br /&gt;
         System.Console.WriteLine( &amp;quot;Getting myValue&amp;quot; );&lt;br /&gt;
         return myValue;&lt;br /&gt;
      }&lt;br /&gt;
      set&lt;br /&gt;
      {&lt;br /&gt;
         System.Console.WriteLine( &amp;quot;Setting myValue&amp;quot; );&lt;br /&gt;
         myValue = value;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
   static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      A obj = new A();&lt;br /&gt;
      obj.MyValue = 1;&lt;br /&gt;
      System.Console.WriteLine( &amp;quot;obj.Value = {0}&amp;quot;,&lt;br /&gt;
                                obj.MyValue );&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Setting myValue&lt;br /&gt;
Getting myValue&lt;br /&gt;
obj.Value = 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A simple property example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System; &lt;br /&gt;
 &lt;br /&gt;
class SimpProp {  &lt;br /&gt;
  int prop; &lt;br /&gt;
 &lt;br /&gt;
  public SimpProp() { &lt;br /&gt;
     prop = 0; &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  public int MyProp { &lt;br /&gt;
    get { &lt;br /&gt;
      return prop; &lt;br /&gt;
    } &lt;br /&gt;
    set { &lt;br /&gt;
      prop = value; &lt;br /&gt;
    }  &lt;br /&gt;
  } &lt;br /&gt;
}  &lt;br /&gt;
  &lt;br /&gt;
class MainClass {  &lt;br /&gt;
  public static void Main() {  &lt;br /&gt;
    SimpProp ob = new SimpProp(); &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(&amp;quot;Original value of ob.MyProp: &amp;quot; + ob.MyProp); &lt;br /&gt;
 &lt;br /&gt;
    ob.MyProp = 100;&lt;br /&gt;
    Console.WriteLine(&amp;quot;Value of ob.MyProp: &amp;quot; + ob.MyProp); &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(&amp;quot;Attempting to assign -10 to ob.MyProp&amp;quot;); &lt;br /&gt;
    ob.MyProp = -10; &lt;br /&gt;
    Console.WriteLine(&amp;quot;Value of ob.MyProp: &amp;quot; + ob.MyProp); &lt;br /&gt;
  } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Original value of ob.MyProp: 0&lt;br /&gt;
Value of ob.MyProp: 100&lt;br /&gt;
Attempting to assign -10 to ob.MyProp&lt;br /&gt;
Value of ob.MyProp: -10&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Combine readonly and read only property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
public sealed class Value&lt;br /&gt;
{&lt;br /&gt;
    public int intValue = 10;&lt;br /&gt;
}&lt;br /&gt;
public sealed class MyController&lt;br /&gt;
{&lt;br /&gt;
    public MyController( Value pimpl ) {&lt;br /&gt;
        this.pimpl = pimpl;&lt;br /&gt;
    }&lt;br /&gt;
    public int IntValue {&lt;br /&gt;
        get {&lt;br /&gt;
            return pimpl.intValue;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    private readonly Value pimpl;&lt;br /&gt;
}&lt;br /&gt;
public sealed class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        Value someNumber = new Value( );&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Define accessors for Properties with get and set==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;class MyClass&lt;br /&gt;
{&lt;br /&gt;
    private string name;&lt;br /&gt;
    &lt;br /&gt;
    public string Name&lt;br /&gt;
    {&lt;br /&gt;
        get &lt;br /&gt;
        {&lt;br /&gt;
            return name;&lt;br /&gt;
        }&lt;br /&gt;
        set &lt;br /&gt;
        {&lt;br /&gt;
            name = value;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Do calculation with Property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
public class SomeClass&lt;br /&gt;
{&lt;br /&gt;
    private int num;&lt;br /&gt;
    public SomeClass(int i)&lt;br /&gt;
    {&lt;br /&gt;
        num = i;&lt;br /&gt;
    }&lt;br /&gt;
    public int Num&lt;br /&gt;
    {&lt;br /&gt;
        get { return num; }&lt;br /&gt;
        set { num = value; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
public class CompoundAssPropApp&lt;br /&gt;
{&lt;br /&gt;
    public static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        SomeClass sc = new SomeClass(42);&lt;br /&gt;
        Console.WriteLine(&amp;quot;{0}&amp;quot;, sc.Num);&lt;br /&gt;
        &lt;br /&gt;
        sc.Num = sc.Num + 5;&lt;br /&gt;
        Console.WriteLine(&amp;quot;{0}&amp;quot;, sc.Num);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Invoke Indexed Property Demo==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Globalization;&lt;br /&gt;
  class Class1&lt;br /&gt;
  {&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
    DateTime[] dateTimes = new DateTime[10];&lt;br /&gt;
    public DateTime this[int index]&lt;br /&gt;
    {&lt;br /&gt;
      get{ return dateTimes[index]; }&lt;br /&gt;
      set{ dateTimes[index] = value;}&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    private DateTime dateOfBirth;&lt;br /&gt;
    public DateTime DateOfBirth&lt;br /&gt;
    {&lt;br /&gt;
        get{ return dateOfBirth; }&lt;br /&gt;
        set{ dateOfBirth = value; }&lt;br /&gt;
    }&lt;br /&gt;
      &lt;br /&gt;
    public void Test()&lt;br /&gt;
    {&lt;br /&gt;
      Console.WriteLine(&amp;quot;Test method called&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    private string field;&lt;br /&gt;
    &lt;br /&gt;
    public string Property&lt;br /&gt;
    { &lt;br /&gt;
      get{ return field; }&lt;br /&gt;
      set{ field = value; }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
    class MainClass{&lt;br /&gt;
    &lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      Type type = typeof(Class1);&lt;br /&gt;
      Console.WriteLine(type.FullName);&lt;br /&gt;
      &lt;br /&gt;
      object o = Activator.CreateInstance(type);&lt;br /&gt;
      type.InvokeMember( &amp;quot;Item&amp;quot;, &lt;br /&gt;
        BindingFlags.Instance | &lt;br /&gt;
        BindingFlags.SetProperty | BindingFlags.Public, &lt;br /&gt;
        null, o, new object[]{0, new DateTime(1966, 2, 12)});&lt;br /&gt;
        &lt;br /&gt;
      Console.WriteLine(((Class1)o)[0].ToString());&lt;br /&gt;
    }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Properties and its Restrictions==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A property consists of a name along with get and set accessors.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The accessors are used to get and set the value of a variable.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The general form of a property is shown here:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;type propertyName {&lt;br /&gt;
        get {&lt;br /&gt;
            // get accessor code&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        set {&lt;br /&gt;
            // set accessor code&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;A property cannot be passed as a ref or out parameter to a method.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;You cannot overload a property.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;A property should not alter the state of the underlying variable when the get accessor is called.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;(Quote from C# The Complete Reference, Publisher: Osborne/McGraw-Hill, March 8, 2002,&lt;br /&gt;
Language: English ISBN-10: 0072134852 ISBN-13: 978-0072134858)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Property And its associated Field==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
   private int privateInnerValue = 10; &lt;br /&gt;
   public int MyValue                  &lt;br /&gt;
   {&lt;br /&gt;
      set { &lt;br /&gt;
         privateInnerValue = value; &lt;br /&gt;
      }&lt;br /&gt;
      get { &lt;br /&gt;
         return privateInnerValue; &lt;br /&gt;
      } &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      MyClass c = new MyClass();&lt;br /&gt;
      Console.WriteLine(&amp;quot;MyValue: {0}&amp;quot;, c.MyValue);&lt;br /&gt;
      c.MyValue = 20;&lt;br /&gt;
      Console.WriteLine(&amp;quot;MyValue: {0}&amp;quot;, c.MyValue);&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;MyValue: 10&lt;br /&gt;
MyValue: 20&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Property Getter and Setter==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
   &lt;br /&gt;
class Address&lt;br /&gt;
{&lt;br /&gt;
    protected string city;&lt;br /&gt;
    public string City&lt;br /&gt;
    { &lt;br /&gt;
     get { return city; }&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    protected string zipCode;&lt;br /&gt;
    public string ZipCode&lt;br /&gt;
    {&lt;br /&gt;
        get { return zipCode; }&lt;br /&gt;
        set &lt;br /&gt;
        { &lt;br /&gt;
            zipCode = value; &lt;br /&gt;
            city = &amp;quot;Atlanta&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
class PropertyApp&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Address addr = new Address();&lt;br /&gt;
        addr.ZipCode = &amp;quot;30338&amp;quot;;&lt;br /&gt;
        string zip = addr.ZipCode;&lt;br /&gt;
   &lt;br /&gt;
        Console.WriteLine(&amp;quot;The city for ZIP code {0} is {1}&amp;quot;, addr.ZipCode, addr.City);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Put logic to property setter==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        Person person = new Person();&lt;br /&gt;
        person.SetName(&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;The person&amp;quot;s full name is {0}&amp;quot;,person.FullName);&lt;br /&gt;
        person.FullName = &amp;quot;A b c&amp;quot;;&lt;br /&gt;
        Console.WriteLine(&amp;quot;The person&amp;quot;s full name is {0}&amp;quot;,person.FullName);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class Person&lt;br /&gt;
{&lt;br /&gt;
    private string _lastname;&lt;br /&gt;
    private string _firstname;&lt;br /&gt;
    public void SetName(string lastname, string firstname)&lt;br /&gt;
    {&lt;br /&gt;
        _lastname = lastname;&lt;br /&gt;
        _firstname = firstname;&lt;br /&gt;
    }&lt;br /&gt;
    public string FullName&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return _firstname + &amp;quot; &amp;quot; + _lastname;&lt;br /&gt;
        }&lt;br /&gt;
        set&lt;br /&gt;
        {&lt;br /&gt;
            string[] names = value.Split(new string[] { &amp;quot; &amp;quot; },StringSplitOptions.RemoveEmptyEntries);&lt;br /&gt;
            _firstname = names[0];&lt;br /&gt;
            _lastname = names[names.Length - 1];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;The person&amp;quot;s full name is B A&lt;br /&gt;
The person&amp;quot;s full name is A c&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Readonly property==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
   public double A = 3;&lt;br /&gt;
   public double B = 4;&lt;br /&gt;
   &lt;br /&gt;
   public double MyValue                            &lt;br /&gt;
   {&lt;br /&gt;
      get { return A * B ; }     &lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      MyClass c = new MyClass();&lt;br /&gt;
      Console.WriteLine(&amp;quot;MyValue: {0}&amp;quot;, c.MyValue);&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;MyValue: 12&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==throw Exception from property setting==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
    public class MyClass&lt;br /&gt;
    {&lt;br /&gt;
        public readonly string Name;&lt;br /&gt;
        private int intVal;&lt;br /&gt;
        public int Val&lt;br /&gt;
        {&lt;br /&gt;
            get&lt;br /&gt;
            {&lt;br /&gt;
                return intVal;&lt;br /&gt;
            }&lt;br /&gt;
            set&lt;br /&gt;
            {&lt;br /&gt;
                if (value &amp;gt;= 0 &amp;amp;&amp;amp; value &amp;lt;= 10)&lt;br /&gt;
                    intVal = value;&lt;br /&gt;
                else&lt;br /&gt;
                    throw (new ArgumentOutOfRangeException(&amp;quot;Val&amp;quot;, value,&amp;quot;Val must be assigned a value between 0 and 10.&amp;quot;));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        public override string ToString()&lt;br /&gt;
        {&lt;br /&gt;
            return &amp;quot;Name: &amp;quot; + Name + &amp;quot;\nVal: &amp;quot; + Val;&lt;br /&gt;
        }&lt;br /&gt;
        private MyClass() : this(&amp;quot;Default Name&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
        public MyClass(string newName)&lt;br /&gt;
        {&lt;br /&gt;
            Name = newName;&lt;br /&gt;
            intVal = 0;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            MyClass myObj = new MyClass(&amp;quot;My Object&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;myObj created.&amp;quot;);&lt;br /&gt;
            for (int i = -1; i &amp;lt;= 0; i++)&lt;br /&gt;
            {&lt;br /&gt;
                try&lt;br /&gt;
                {&lt;br /&gt;
                    myObj.Val = i;&lt;br /&gt;
                }&lt;br /&gt;
                catch (Exception e)&lt;br /&gt;
                {&lt;br /&gt;
                    Console.WriteLine(&amp;quot;Exception {0} thrown.&amp;quot;, e.GetType().FullName);&lt;br /&gt;
                    Console.WriteLine(&amp;quot;Message:\n\&amp;quot;{0}\&amp;quot;&amp;quot;, e.Message);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Use properties to set and get private members.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System; &lt;br /&gt;
 &lt;br /&gt;
class Shape { &lt;br /&gt;
  double pri_width;  // now private &lt;br /&gt;
  double pri_height; // now private  &lt;br /&gt;
 &lt;br /&gt;
  // Properties for width and height. &lt;br /&gt;
  public double width { &lt;br /&gt;
     get { return pri_width; } &lt;br /&gt;
     set { pri_width = value; } &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  public double height { &lt;br /&gt;
     get { return pri_height; } &lt;br /&gt;
     set { pri_height = value; } &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  public void showDim() { &lt;br /&gt;
    Console.WriteLine(&amp;quot;Width and height are &amp;quot; + &lt;br /&gt;
                       width + &amp;quot; and &amp;quot; + height); &lt;br /&gt;
  } &lt;br /&gt;
} &lt;br /&gt;
 &lt;br /&gt;
class Triangle : Shape { &lt;br /&gt;
  public string style; // style of triangle &lt;br /&gt;
   &lt;br /&gt;
  public double area() { &lt;br /&gt;
    return width * height / 2;  &lt;br /&gt;
  } &lt;br /&gt;
 &lt;br /&gt;
  public void showStyle() { &lt;br /&gt;
    Console.WriteLine(&amp;quot;Triangle is &amp;quot; + style); &lt;br /&gt;
  } &lt;br /&gt;
} &lt;br /&gt;
 &lt;br /&gt;
class MainClass { &lt;br /&gt;
  public static void Main() { &lt;br /&gt;
    Triangle t1 = new Triangle(); &lt;br /&gt;
    Triangle t2 = new Triangle(); &lt;br /&gt;
 &lt;br /&gt;
    t1.width = 4.0; &lt;br /&gt;
    t1.height = 4.0; &lt;br /&gt;
    t1.style = &amp;quot;isosceles&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
    t2.width = 8.0; &lt;br /&gt;
    t2.height = 12.0; &lt;br /&gt;
    t2.style = &amp;quot;right&amp;quot;; &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(&amp;quot;Info for t1: &amp;quot;); &lt;br /&gt;
    t1.showStyle(); &lt;br /&gt;
    t1.showDim(); &lt;br /&gt;
    Console.WriteLine(&amp;quot;Area is &amp;quot; + t1.area()); &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(); &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(&amp;quot;Info for t2: &amp;quot;); &lt;br /&gt;
    t2.showStyle(); &lt;br /&gt;
    t2.showDim(); &lt;br /&gt;
    Console.WriteLine(&amp;quot;Area is &amp;quot; + t2.area()); &lt;br /&gt;
  } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Info for t1:&lt;br /&gt;
Triangle is isosceles&lt;br /&gt;
Width and height are 4 and 4&lt;br /&gt;
Area is 8&lt;br /&gt;
Info for t2:&lt;br /&gt;
Triangle is right&lt;br /&gt;
Width and height are 8 and 12&lt;br /&gt;
Area is 48&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>