2013-03-06 4 views
-2

У меня есть класс, который работает так:необязательный параметр типа для конструктора

public class MyClass 
{ 
    MyClass(SomeOtherObject TheObject) 
    { 
     .... 
    } 
} 

Как вы можете видеть, конструктор принимает в качестве параметра объекта. Как изменить конструктор, чтобы параметр объекта стал необязательным?

Примечание: я просмотрел google, и большинство сообщений говорят о необязательном параметре значения, но мне нужен необязательный параметр типа.

+0

Нет, вы * не нуждаетесь в необязательном параметре типа. Это просто параметр. По крайней мере, вы не упомянули * ничего * о дженериках, в которые входят параметры типа ... –

+0

создать другой конструктор без параметров ... – Th0rndike

+0

@JonSkeet: если я напишу MyClass TheClass = new MyClass(); он не работает. – frenchie

ответ

7

Перегрузка конструктора.

public class MyClass 
{ 
    MyClass() 
    { 
     .... 
    } 
    MyClass(SomeOtherObject TheObject) 
    { 
     .... 
    } 
} 
+0

Хорошо, спасибо, что работает. – frenchie

3

Почему не просто так:

public class MyClass 
{ 
    MyClass(SomeOtherObject TheObject = null) 
    { 
     .... 
    } 
} 

Таким образом опустить параметр на строительство объекта.

var cls = new MyClass(); //NO PARAMETER SPECIFIED 

Таким образом, вы должны управлять internaly что field/property присваиваемое TheObject может стать null, в этом случае.

Или просто использовать ctors ctors перегрузки:

public class MyClass 
{ 
    MyClass(SomeOtherObject TheObject) 
    { 
     .... 
    } 

    MyClass() : this(null) 
    { 
     .... 
    } 
} 
3

Будет ли конструктор перегрузки работу?

public class MyClass 
{ 
    MyClass(Object TheObject) 
    { 
    } 

    MyClass() 
    { 
    } 
} 
Смежные вопросы