【发布时间】:2021-06-23 06:40:35
【问题描述】:
我正在统一实施 vivox,我在教程中遇到了一个情况,这个人对 AsyncCallback 代表做了一些我想确认的事情。
using UnityEngine;
using VivoxUnity;
using System;
public class VivoxLearn : MonoBehaviour
{
VivoxUnity.Client client;
ILoginSession loginSession;
private string issuer="";
private string tokenKey = "";
private string domain = "";
private Uri server=new Uri("");
private TimeSpan timespan = new TimeSpan(90);
private AsyncCallback loginCallback; //check-1
private void Awake()
{
client = new Client();
client.Uninitialize();
client.Initialize();
DontDestroyOnLoad(this);
}
void Start()
{
loginCallback = new AsyncCallback(Login_Result); //check-2
}
public void Login(string username)
{
AccountId accountId = new AccountId(issuer, username, domain);
loginSession.BeginLogin(server, loginSession.GetLoginToken(tokenKey, timespan), loginCallback);//check-3
}
private void Login_Result(IAsyncResult ar) //check-4
{
try
{
loginSession.EndLogin(ar);
}
catch (Exception e)
{
Debug.Log(e.Message);
}
}
}
在 check-3 行中,如果我直接将 Login_Result 作为行中的最后一个参数(check-3)?这是合法和允许的方式吗?如果是,那么请解释一下为什么允许这样做......
【问题讨论】:
标签: c# delegates asynccallback iasyncresult