【问题标题】:Optional Parameters in C# FunctionalityC# 功能中的可选参数
【发布时间】:2020-11-02 19:08:59
【问题描述】:

我对 C# 中的可选参数感到非常困惑和困惑 我正在尝试完成与 C++ 和 VB 相同的操作,如果不需要参数为什么还要传递它,我在下面的函数中使用以下内容,但是当我使用函数时,它仍然需要传递作为参数。 有没有办法如果不需要传递可选参数来跳过它,只传递必要的参数?

public static void WindowTOpen(string pUrl2Open, [Optional, DefaultParameterValue("")] string pWinName, [Optional, DefaultParameterValue(0)] int pWidth, [Optional,        DefaultParameterValue(0)] int pHeight, [Optional, DefaultParameterValue("")] string pWinParams, object sender, System.Web.UI.Page pHtmlPage)
    {   
        //- Default to Page Display Minimun Size 800 x 600
        if (pWidth == 0) { pWidth = 800; } 
        if (pHeight == 0) { pHeight = 600; }
        if (pWinName.Trim().Length == 0) { pWinName = "NeWin"; }            
        string _WINDOW_TO_OPEN = "window.open(" + _sDOUBLE_QUOTE + pUrl2Open.Trim() + _sDOUBLE_QUOTE + "," + _sDOUBLE_QUOTE;            
        _WINDOW_TO_OPEN += pWinName.Trim() + _sDOUBLE_QUOTE + "," + _sDOUBLE_QUOTE + " width=" + pWidth.ToString() + ",";
        _WINDOW_TO_OPEN += "height=" + pHeight.ToString();
        if (pWinParams.Trim().Length > 0)
        {
            _WINDOW_TO_OPEN += pWinParams.Trim();
        }
        else
        {
            _WINDOW_TO_OPEN += _WIN_OPEN_PARAMS;
        }
        _WINDOW_TO_OPEN += _sDOUBLE_QUOTE + ")";
        ScriptManager.RegisterClientScriptBlock((sender as Control), pHtmlPage.GetType(), "winpop", _WINDOW_TO_OPEN, true);
    }

谢谢

【问题讨论】:

    标签: visual-studio-2010 c#-4.0


    【解决方案1】:

    是的,我们可以通过制作可选参数来实现。这里我给你一个简单的例子。您可以根据自己的要求以自己的方式使用它。例如

    public void Fun1(string p1, int p2, string p3 = null, string p4 = "Test")
        {
    
        }
    

    请注意选项参数将始终作为最后一个参数。上面的函数可以作为两种方式中的任何一种调用。

     this.Fun1("Test1", 123);
     this.Fun1(p2:123, p1:"Test1");
    

    希望这对您有所帮助。如果您对此有任何疑问,请告诉我。

    【讨论】:

    • 谢谢 ManojKS,我想了解 [Optional, DefaultParameterValue("")] 是什么,因为基于 Microsoft 知识库,它应该可以工作,但显然它没有。跨度>
    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    相关资源
    最近更新 更多