Click here to Skip to main content
15,920,438 members
Please Sign up or sign in to vote.
3.00/5 (1 vote)
See more:
I am just trying to explore Generic class in C#.
I am trying to pass an object to the class Test and I am assigning the _value the customer object.

How to retrieve the customer object value in write method below?
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{

    public class Customer
    {

        public int CusomerId { get; set; }
        public string CustomerName { get; set; }
        public int CustomerAge { get; set; }
    }

    public class Test<T>
    {

        T _value;

        public Test(T t)
        {

            _value = t;
        }

//i am trying here to get the customer object from _value which i assigned in _value
//i cant even use foreach in generic class...
        public void write()
        {
       

        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            Customer obj = new Customer();
            obj.CusomerId = 1001;
            obj.CustomerAge = 23;
            obj.CustomerName = "Anurag";

            Test<object> T1 = new Test<object>(obj);
            T1.write();
            Console.ReadLine();
        }
    }
}
Kindly help me
Posted
Updated 21-Feb-14 7:40am
v3

try this in your write() method
object a = _value;
Customer c = (Customer)a;
Console.WriteLine(c.CustomerId);
Console.WriteLine(c.CustomerName);
Console.WriteLine(c.CustomerAge);
 
Share this answer
 
v2
Comments
anurag19289 21-Feb-14 21:11pm    
cool... :)
Try this:
C#
public class Test<T> where T : Customer

where T : Customer makes sure you can only use the type Customer or types derived from Customer.

Then, change this line in the Main method:
C#
Test<Customer> T1 = new Test<Customer>(obj);

Change object into Customer, otherwise you will get a compiler error.

Now, you will be able to access the properties from the Customer class from your generic class.
 
Share this answer
 
v2
Comments
anurag19289 21-Feb-14 14:05pm    
I am getting error--> constraints are not allowed on non-generic declarations
Thomas Daniels 21-Feb-14 14:09pm    
On what line do you get this error?
anurag19289 21-Feb-14 14:07pm    
i think as i m using visual studio 2008 probably it doesnot support...
anurag19289 21-Feb-14 14:08pm    
so is it the only way to do so ?
anurag19289 21-Feb-14 14:10pm    
in this line itself i am getting error

public class Customer where T : Customer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900