gpt4 book ai didi

c# - 类的泛型构造函数

转载 作者:行者123 更新时间:2023-12-02 20:22:29 24 4
gpt4 key购买 nike

我有以下 C# 代码:

public interface IViewModel {
PageData Page { get; set; }
}

public class PageData { }

public class ViewModel<T> : IViewModel {

public PageData PageData { get; set; }
public T ViewData { get; set; }

public ViewModel(T viewData, PageData pageData) {
PageData = pageData;
ViewData = viewData;
}
}

然后我按如下方式使用它:

PageData pd = new PageData();
ViewData vd = new ViewData();
ViewModel<MyViewData> model = new ViewModel<MyViewData>(vd, pd);

是否可以更改我的代码,以便我可以将其用作:

IViewModel model = new ViewModel(vd, pd);

基本上 ViewModel 将采用 vd 类型。

最佳答案

不,但是你可以做的是提供一个静态工厂方法来让生活更轻松:

public static class ViewModel
{
public static ViewModel<T> Create<T>(T viewData, PageData pageData)
{
return new ViewModel<T>(viewData, pageData);
}
}

并像这样使用它:

IViewModel model = ViewModel.Create(vd, pd);

关于c# - 类的泛型构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30337350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com