获取随机对象并返回它的泛型方法

时间:2019-03-16 10:33:57

标签: c# generics

我想创建一个通用的“登录”方法,该方法将获得一个随机对象并应返回该对象。

 public class LoginPageOne : BasePage
    {      
        public LoginPageOne(Browser browser)
            : base(browser)
        {
         CheckPageErrors(UserName, page);
        }

        public PianoBar_Obj1 Login(Browser browser, IUser username)
        {
            //Do something
            return new PianoBar_Obj1 (browser);
        }     
    }

    public class LoginPageTwo : BasePage
    {      
        public LoginPageTwo (Browser browser)
            : base(browser)
        {
            CheckPageErrors(UserName, page);
        }

        public PianoBar_Obj2 Login(Browser browser, IUser username)
        {
            //Do something
            return new PianoBar_Obj2 (browser);
        }     
    }

public BasePage(Browser browser)
    : base(browser)
{
    browser.BrowserHelper.RunJavascriptOverideLogs();
}

我只想创建一个能够获取任何对象类型的“登录”通用方法,请注意,此方法的实现与返回类型相同。 像这样:

 public T Login(T object,Browser browser, IUser username)
    {
    // Do something`
     return new T();
    }

1 个答案:

答案 0 :(得分:2)

public T Login<T>()
  where T: class, new()
{
  return new T();
}

要使用PianoBar_Obj2从代码中调用此代码,只需按如下所示进行调用:

return Login<PianoBar_Obj2>();