您可以将委托函数作为可选参数传递吗?

时间:2015-07-02 18:11:33

标签: vb.net parameters delegates optional-parameters

我知道在Visual Basic中,委托函数不能包含可选参数。但是一个方法可以将委托作为可选参数吗?

我想做的是:

Sub OtherFunction(ByVal str As String, Optional ByVal delegate As MyDelegate = AddressOf MyDelegateDefault)
    delegate(str)
End Sub

Sub ParentFunction()
    OtherFunction("", ) '< "" as string, nothing for optional delegate parameter'
End Sub

在代码的不同部分:

OtherFunction

注意最终函数boost::asio::io_service smpp_io_service; tcp::endpoint endpoint(ip::address_v4::from_string("192.168.0.25"), 2775); std::shared_ptr<tcp::socket> smpp_socket(new tcp::socket(smpp_io_service)); smpp_socket->connect(endpoint); SmppClient client(smpp_socket); void wx_test2Frame::OnButton1Click(wxCommandEvent& event) { Logger::out( "Connecting..." ); try { client.setVerbose(true); client.bindTransceiver(txtSystemId->GetValue().ToStdString(), txtPassword->GetValue().ToStdString()); Logger::out( "Connected" ); 如何将可选委托作为第二个参数。

这是一件事吗?委托函数可以是可选参数吗?

1 个答案:

答案 0 :(得分:1)

引用类型的参数只能默认为null。将默认值更改为null,检查空条件,并且不要调用委托(不执行任何操作)。