C# Property with Generic Type

.net, c#, generics

Solution

@bytenik I think the originator is asking that class3 be defined to contain a generic property. That way when he / she has a property from class1 or class2 which in this case is a string / int that class3's property could handle either case.

public class Class3<T>
{
 public T Property3 {get;set;}
}

I think the intent is the poster wants to do this:

Class3.Property3 = Class2.Property2

I think the poster will need to cast it to type T for this to work though.

Look at the link that was posted for an example: Making a generic property

Here is what you can do:

namespace GenericSO
{
    public class Class1
    {
        public int property1 { get;set;}

    }

    public class Class2<T>
    {
        public T property2 { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Class1 c1 = new Class1();
            c1.property1 = 20;

            Class2<int> c2 = new Class2<int>();

            c2.property2 = c1.property1;
        }
    }
}

Notice how your template property2 gets the value of property1. You have to tell it what kind of generic.

Problem

I have a class: ``` public class class1 { public string Property1 {get;set;} public int Property2 {get;set;} } ``` Which will be instantiated: ``` var c = new class1(); c.Property1 = "blah"; c.Property2 = 666; ``` So bear with me (I am new to generics), I need another class with a property of a generic type so that Property1 or Property2 can be used to set Property3: ``` public class Class2 { public GenericType Property3 {get;set;} } ``` I want to be able to: ``` var c2 = new class2(); c2.Property3 = c1.Property2 // Any property of any type. ```

Original source

Related problems