c#这是我如何覆盖方法?

Tom*_*len 1 c# methods overriding

    // Loads a users info
    public void loadUserInfo()
    {
        CrystalTech.tblUsersDataTable dsCommon = new CrystalTech.tblUsersDataTable();
        using (tblUsersTableAdapter userAdapter = new tblUsersTableAdapter())
        {
            userAdapter.FillBy(dsCommon, this.ID);
        }
        this.username = dsCommon[0].userName;
        this.company.ID = dsCommon[0].clientID;
        this.company.name = dsCommon[0].ClientName;
        this.isBuyer = bool.Parse(dsCommon[0].isBuyer.ToString());
        this.isClient = bool.Parse(dsCommon[0].isClient.ToString());
        this.isClientPowerUser = bool.Parse(dsCommon[0].powerUser.ToString());
        this.isReportingUser = bool.Parse(dsCommon[0].reportingUser.ToString());
        this.isSupplier = bool.Parse(dsCommon[0].isSupplier.ToString());
        this.isPaperSupplier = bool.Parse(dsCommon[0].isPaperSupplier.ToString());
        this.hasKitView = bool.Parse(dsCommon[0].haskitview.ToString());
    }
    public void loadUserInfo(int usersID)
    {
        this.ID = usersID;
        loadUserInfo();
    }
Run Code Online (Sandbox Code Playgroud)

这是正确/标准的吗?或者我接近这个错误?目的是让userID在可选参数中传递.

Sco*_*ott 5

您也可以使用C#4.0中的可选参数:

// Loads a users info
    public void loadUserInfo(int usersID = 0)
    {
        if (usersID > 0) this.ID = usersID;

        CrystalTech.tblUsersDataTable dsCommon = new CrystalTech.tblUsersDataTable();
        using (tblUsersTableAdapter userAdapter = new tblUsersTableAdapter())
        {
            userAdapter.FillBy(dsCommon, this.ID);
        }
        this.username = dsCommon[0].userName;
        this.company.ID = dsCommon[0].clientID;
        this.company.name = dsCommon[0].ClientName;
        this.isBuyer = bool.Parse(dsCommon[0].isBuyer.ToString());
        this.isClient = bool.Parse(dsCommon[0].isClient.ToString());
        this.isClientPowerUser = bool.Parse(dsCommon[0].powerUser.ToString());
        this.isReportingUser = bool.Parse(dsCommon[0].reportingUser.ToString());
        this.isSupplier = bool.Parse(dsCommon[0].isSupplier.ToString());
        this.isPaperSupplier = bool.Parse(dsCommon[0].isPaperSupplier.ToString());
        this.hasKitView = bool.Parse(dsCommon[0].haskitview.ToString());
    }
Run Code Online (Sandbox Code Playgroud)