A: 

You can always use reflection, of course. Also, if the two types implement a common interface with a Lunch property, you can use that. (I do not understand what you mean by "Table" here.)

Marcel Popescu
+5  A: 

You'd have to have both classes implement an interface something like this:

public interface IMyInterface
{
   DateTime Time{get;set;}
}

And then in your generic method:

public void MyMethod<T>(T item) where T: IMyInterface
{
    //here you can access item.Time
}
BFree
A: 

You could use an interface that Lunch and Dinner implement that has a property called Time

 public interface IMealTime
    {
        DateTime Time { get; set; }
    }

    public class Lunch : IMealTime
    {
        #region IMealTime Members

        public DateTime Time { get; set; }

        #endregion
    }

    public class Dinner : IMealTime
    {
        #region IMealTime Members
        public DateTime Time { get; set; }

        #endregion
    }

    public class GenericMeal
    {
        public DateTime GetMealTime<T>(T meal) where T: IMealTime
        {
            return meal.Time;
        }
    }
CSharpAtl
Great explanation. Came after the first answer in the same direction, but anyways thank you. :)
Alex
Yeah....I saw it as I was finishing up the answer.....no problem
CSharpAtl