Wednesday, February 09, 2005
Assigning properties to delegates in C#
Assigning properties to delegates in C# - this cannot be done.
So if you wanted to select a property to use at runtime, then you can use a method similar to that shown below.
public class Class1
   {
       string s1 = null;
       string s2 = null;
       private PropertyInfo _prop;
       public Class1(int iPropToUse)
       {
           if (iPropToUse == 1)
               _prop = typeof(Class1).GetProperty("PropOne");
           else
               _prop = typeof(Class1).GetProperty("PropTwo");
       }
       public string PropOne
       {
           get    {return s1;    }
           set {s1 = value;}
       }
       public string PropTwo
       {
           get    {return s2;}
           set {s2 = value;}
       }
       public void SetStringValue(string s)
       {
           if (_prop != null) _prop.SetValue(this,s,null);
       }
       public string GetStringValue()
       {
           if (_prop != null) return (string) _prop.GetValue(this,null);
           else return "no property set";
       }
     
       static void Main(string[] args)
       {
           Class1 o1 = new Class1(1);
           o1.SetStringValue("Hello");
           Console.WriteLine(o1.GetStringValue());
           Class1 o2 = new Class1(2);
           o2.SetStringValue("World");
           Console.WriteLine(o2.GetStringValue());
           int i = Console.Read();
             
       }
   }
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment