ehsan shirzadi
ehsan shirzadi

Reputation: 4859

How to access a class declared inside another class without creating an instance?

I have a 'Table' class. inside this class I have another class called 'Filter'. I want to create an instance of Table and access Filter like this:

Table t = new Table();
t.Filter.Add();

How should I declare Filter class? I think its not a good idea to declare static because Filter must work on Table instance. what should I do? This is my class:

 public class Table : Database
    {
        public class Filter 
        {
            private List<BaseClasses.DataTypes.FilterCondition> conditions = new List<BaseClasses.DataTypes.FilterCondition>();

            public void Add(string column, Int64 value)
            {
                conditions.Add(new BaseClasses.DataTypes.FilterCondition(column, "=", value.ToString()));
            }
        }
    }

Upvotes: 1

Views: 107

Answers (3)

Biju Thomas
Biju Thomas

Reputation: 1119

public class Table : Database
{
    public Filter Filter 
    {
       get;set;
    }

    public Table()
    {
        Filter = new Filter();
    }

    public class Filter
    {
        private List conditions = new List();
        public void Add(string column, Int64 value)
        {
            conditions.Add(new BaseClasses.DataTypes.FilterCondition(column, "=", value.ToString()));
        }
    }
}

Upvotes: 1

Roy Dictus
Roy Dictus

Reputation: 33139

Create the public class Filter inside Table and add a property called Filter to Table, like so:

public Filter Filter { get; set; }

Upvotes: 2

BRAHIM Kamel
BRAHIM Kamel

Reputation: 13765

Just make your class as a property of the table class

 public class Filter 
            {
                private List<BaseClasses.DataTypes.FilterCondition> conditions = new List<BaseClasses.DataTypes.FilterCondition>();

                public void Add(string column, Int64 value)
                {
                    conditions.Add(new BaseClasses.DataTypes.FilterCondition(column, "=", value.ToString()));
                }
            }

and here your table class

public class Table : Database
        {

    public  Filter Filter  {get;set;}

    }

Upvotes: 1

Related Questions