使构造函数只接受C#中[Serializable]属性的对象
我希望我的构造函数只接受具有[Serializable]
属性的对象。使构造函数只接受C#中[Serializable]属性的对象
public MyClass(object obj) {
}
喜欢的东西:
public MyClass(? obj) {
}
我怎样才能做到这一点在C#
回答:
这使我想到的第一件事是通过只允许实现ISerializable
接口的对象来简化这个:
public MyClass(ISerializable obj) {
// ...
}
但我认为这太简单了,不是吗?
或者:
public MyClass(Object obj) {
if (!Attribute.IsDefined(obj.GetType(), typeof(SerializableAttribute)))
throw new ArgumentException("The object must have the Serializable attribute.","obj");
// ...
}
我认为,你甚至可以通过检查它:
obj.GetType().IsSerializable;
以上是 使构造函数只接受C#中[Serializable]属性的对象 的全部内容, 来源链接: utcz.com/qa/257184.html