Articles of costruttore di

Qual è il modo corretto per convalidare gli argomenti di un costruttore

Quindi ho una class con un parametro di stringa singola nel suo costruttore: public MyClass(string name) { this.Name = name; } ma non voglio mai preoccuparmi di qualcuno che inizializza un’istanza di MyClass con un nome che sia NULL o una stringa di lunghezza zero. Qual è il migliore è stato quello di convalidare il […]

Eredita da una ‘Form’ che ha parametri

Ho un modulo chiamato ScanFolder e ho bisogno di un altro modulo, che deve essere molto simile a ScanFolder , quindi ho deciso di utilizzare l’ ereditarietà della forma . Ma sembra esserci un malinteso con il costruttore. ScanFolder assomiglia a: public partial class ScanFolder : Form { public ScanFolder(MainForm parent, bool[] autoModes, GlobalMethods GMethodsClass) […]

Perché la nuova stringa (“Hello”) non è valida in C #?

Qual è la logica / ragione del fare String s= new String(“Hello World”); Illegale in C #? L’errore è La migliore corrispondenza del metodo in overload per `string.String (char *) ‘ha alcuni argomenti non validi Non sono interessato ai documenti API, sono interessato al motivo per cui questo è illegale. È a causa del raggruppamento […]

Utilizzare Moq per simulare Constructor?

Ho una tale serie di costruttori: public BusinessObjectContext() : this(CloudStorageAccount.FromConfigurationSetting(“DataConnectionString”).TableEndpoint.ToString(), CloudStorageAccount.FromConfigurationSetting(“DataConnectionString”).Credentials) {} public BusinessObjectContext(string dataConnectionString) : this(CloudStorageAccount.Parse(dataConnectionString).TableEndpoint.ToString(), CloudStorageAccount.Parse(dataConnectionString).Credentials) { } public BusinessObjectContext(String baseAddress, StorageCredentials credentials) : base(baseAddress, credentials) { } Tuttavia durante il testing / Mocking ho bisogno dell’object senza nessuno dei parametri della stringa di connessione. Come posso fare questo – preferibilmente in Moq? […]

In C #, come accedere al costruttore di controventi ricci usando la riflessione?

In C # possiamo ora build nuovi oggetti usando il costruttore di parentesi graffa, cioè class Person { readonly string FirstName {get; set;} readonly string LastName {get; set;} } new Person { FirstName = “Bob”, LastName = “smith” } Ho bisogno di build questo object usando reflection, ma se queste variabili membro sono marcate in […]

Come posso utilizzare più costruttori per rimuovere il codice duplicato pur mantenendo la leggibilità?

int a, b, c; Constructor() { a = 5; b = 10; c = 15; //do stuff } Constructor(int x, int y) { a = x; b = y; c = 15; //do stuff } Constructor(int x, int y, int z) { a = x; b = y; c = z; //do stuff } Per […]

In C #, hai bisogno di chiamare il costruttore di base?

In C #, se ho una class ereditata con un costruttore predefinito, devo chiamare esplicitamente il costruttore della class di base o verrà chiamato implicitamente? class BaseClass { public BaseClass() { // … some code } } class MyClass : BaseClass { public MyClass() // Do I need to put “: base()” here or is […]

Classe C # senza costruttore

Com’è ansible che la class in C # non abbia definito i costruttori? Ad esempio, ho una lezione internal class TextStyle { internal string text = “”; internal Font font = new Font(“Arial”, 8); internal Color color = Color.Black; } E nel codice questa class è istanziata come TextStyle textParameters = new TextStyle();

Come creare un’istanza per un determinato tipo?

Con i generici puoi var object = default(T); Ma quando tutto ciò che hai è un’istanza di tipo che potrei solo constructor = type.GetConstructor(Type.EmptyTypes); var parameters = new object[0]; var obj = constructor.Invoke(parameters); o anche var obj = type.GetConstructor(Type.EmptyTypes).Invoke(new object[0]); Non c’è un modo più breve, come la versione generica?

Snippet di codice o scorciatoia per creare un costruttore in Visual Studio

Qual è il code-snippet o il collegamento per creare un costruttore in Visual Studio? Visual Studio 2010 e C #. L’ho usato prima, ma non riesco a ricordare.