[Serializable]
[DataContract()]
public sealed class B: BaseB
{
public B()
{
SourceContainerFolderName = string.Empty;
}
[DataMember(Name = "sourceContainer ")]
public string SourceContainer { get; set; }
[DataMember(Name = "sourceContainerFolderName ")]
public string SourceContainerFolderName { get; set; }
public A GetA()
{
return new A
{
ContainerName = SourceContainer,
FolderName = SourceContainerFolderName,
};
}
}
请帮我在DataContract中创建一个扩展方法instedof方法 - GetA()
。我想从我的类中删除此方法并使用扩展方法。怎么做?
答案 0 :(得分:1)
我不确定我完全理解你的问题,但试试这个:
public static A GetA(this B baseB)
{
return new A
{
ContainerName = baseB.SourceContainer,
FolderName = baseB.SourceContainerFolderName,
};
}
编辑后,此扩展方法将使用类型B的对象创建类型A的对象,您可以像这样使用它:
B b = new B();
A a = B.GetA(); // Here's is the use of the extension
答案 1 :(得分:0)
必须将static
方法中的static class
方法定义为具有特殊this T
参数的public static class Extensions {
public static A GetA(this B me)
{
if (me == null) throw new ArgumentNullException();
return new A {
ContainerName = me.SourceContainer,
FolderName = me.SourceContainerFolderName
};
}
}
作为第一个参数
.force("link", d3.forceLink().id(function(d) { return d.id; }).distance(200))
有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/bb383977.aspx。