c# - C# 中的静态抽象方法

标签 c# .net polymorphism

我知道静态抽象方法是同义反复,但我该怎么做:

基类,抽象类:

abstract class QTimerDatabaseObject {

    public static abstract QTimerDatabaseObject createFromQTimer(DataRow QTimerRow);
    public abstract void saveRow();
}

示例实现(在扩展 QTimerDatabaseObject 的用户类中):

    public static override QTimerDatabaseObject createFromQTimer(DataRow QTimerRow) {
        int ID = (int)QTimerRow["id"];

        string Username = QTimerRow["username"].ToString();
        string Init = (QTimerRow["init"] ?? "").ToString();
        string FirstName = (QTimerRow["FirstName"] ?? "").ToString();
        string MiddleInitial = (QTimerRow["Midinit"] ?? "").ToString();
        string LastName = (QTimerRow["Lastname"] ?? "").ToString();
        string Salutation = (QTimerRow["salutation"] ?? "").ToString();

        int RefNum = (int)(QTimerRow["refnum"] ?? -1);
        int Timestamp = (int)(QTimerRow["timestamp"] ?? -1);
        int DelCount = (int)(QTimerRow["delcount"] ?? 0);

        bool IsHidden = (bool)(QTimerRow["hidden"] ?? false);

        return new User(ID, Username, Init, FirstName, MiddleInitial, LastName, Salutation, RefNum, Timestamp, DelCount, IsHidden);
    }

我怎样才能做这样的事情?

最佳答案

我想你想要的是 Factory Design Pattern .

关于c# - C# 中的静态抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772537/

相关文章:

c# - 尝试启动第二个实例时出现 CantStartSingleInstanceException

c# - 保存并补充 .net Web 应用程序的状态

c# - SSH 主机 key 指纹与模式不匹配 C# WinSCP

c# - 将任务分配给变量与 Task.Run

.net - .Net 4.0 中的 WPF 焦点管理

c++ - C++中的多态迭代器

c# - 这个语法是什么意思?新的 { }

c# - NLog.Extended 从 2.0 升级到 4.6 后抛出 "Could not load type NLog.Web.NLogHttpModule"

Haskell 无法匹配类型,声称是刚性变量

java - 在 Java 中扩展一个类