我知道在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" );
如何将可选委托作为第二个参数。
答案 0 :(得分:1)
引用类型的参数只能默认为null。将默认值更改为null,检查空条件,并且不要调用委托(不执行任何操作)。