如何解决C#功能中的可选参数
我对C#中的Optional参数感到非常困惑和困惑 我试图完成与C ++和VB相同的操作,如果不需要参数为什么还要传递它,我在下面的函数中使用了以下内容,但是当我使用该函数时,它仍然需要传递一些东西作为参数。 如果不需要传递可选参数以跳过它而只传递必要的参数,有没有办法?
public static void WindowTOpen(string pUrl2Open,[Optional,DefaultParameterValue("")] string pWinName,DefaultParameterValue(0)] int pWidth,DefaultParameterValue(0)] int pHeight,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);
}
谢谢
解决方法
是的,我们可以通过设置可选参数来实现。在这里,我举一个简单的例子。您可以根据自己的需要使用它。例如
public void Fun1(string p1,int p2,string p3 = null,string p4 = "Test")
{
}
请注意选项参数将始终作为最后一个参数。上面的函数可以用两种方式中的任何一种来调用。
this.Fun1("Test1",123);
this.Fun1(p2:123,p1:"Test1");
希望这对您有所帮助。如果您有任何疑问,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。