在c#中添加构造方法,添加一个构造方法,按指定的性别对创建的对象进行初始化
时间: 2023-04-06 20:03:05 浏览: 68
可以在类中添加一个构造方法,如下所示:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
public Person(string name, int age, string gender)
{
Name = name;
Age = age;
Gender = gender;
}
}
在这个构造方法中,我们可以传入三个参数,分别是姓名、年龄和性别。在创建对象时,我们可以按照指定的性别对对象进行初始化,例如:
Person person = new Person("张三", 20, "男");
这样,我们就可以创建一个名为张三、年龄为20岁、性别为男的 Person 对象了。
相关问题
C#子类构造方法定义父类对象
在C#中,子类的构造方法可以通过使用关键字 `base` 来调用父类的构造方法,并且在子类的构造方法中执行父类的初始化操作。下面是一个示例代码:
```csharp
class ParentClass
{
public ParentClass()
{
// 父类的构造方法
}
}
class ChildClass : ParentClass
{
public ChildClass() : base()
{
// 子类的构造方法
}
}
```
在上面的示例中,子类 `ChildClass` 的构造方法使用 `base()` 调用父类 `ParentClass` 的构造方法。这样可以确保在创建子类对象时,先执行父类的初始化操作。
C# 如何在反序列化对象时对对象做初始化
在 C# 中,在反序列化对象时可以通过实现特殊的构造函数和方法来对对象进行初始化。具体来说,可以使用以下两种方法:
1.实现 ISerializable 接口
ISerializable 接口是 C# 中用于序列化和反序列化对象的接口之一。通过实现该接口,可以控制对象的序列化和反序列化过程,并在反序列化时对对象进行初始化。
在实现 ISerializable 接口时,需要实现 GetObjectData 方法和特殊的构造函数。在 GetObjectData 方法中,将对象的字段序列化到 SerializationInfo 对象中。在反序列化时,使用特殊的构造函数从 SerializationInfo 对象中读取对象的字段并进行初始化。
例如:
```
[Serializable]
public class MyClass : ISerializable
{
public int myInt;
public string myString;
public MyClass() {}
protected MyClass(SerializationInfo info, StreamingContext context)
{
myInt = info.GetInt32("myInt");
myString = info.GetString("myString");
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("myInt", myInt);
info.AddValue("myString", myString);
}
}
```
2.实现 OnDeserializedAttribute 特性
OnDeserializedAttribute 特性是 C# 中另一个用于反序列化对象时对对象进行初始化的方法。通过在对象的方法上添加该特性,可以在反序列化时调用该方法对对象进行初始化。
例如:
```
[Serializable]
public class MyClass
{
public int myInt;
public string myString;
[OnDeserialized]
private void OnDeserialized(StreamingContext context)
{
myInt = 0;
myString = "default";
}
}
```
在上面的代码中,当反序列化 MyClass 对象时,会调用 OnDeserialized 方法对对象进行初始化。