所以我有一个简单的用户类:
public class User
{
public string id, name, email, image;
public User (IFBGraphUser user)
{
id = user.GetId ();
name = user.GetName ();
GetEmail ();
}
private void GetEmail()
{
FBRequestConnection.StartWithGraphPath("/me", null, "GET", delegate(FBRequestConnection connection, NSObject result, NSError error) {
var me = (FBGraphObject)result;
this.email = me["email"].ToString();
});
}
}
但我需要从Facebook获取用户的电子邮件。我的Facebook请求有一个代表,当我尝试在委托中分配电子邮件字段时,电子邮件字段仍然为空。如何将电子邮件发送到代理人的电子邮件字段?
这不是Facebook结果的问题,我已经尝试this.email = "test";
,当我去访问它时它仍然是null
。
答案 0 :(得分:0)
在本代码中,我设置了一个类级别字段的值并在委托之外访问它,这样可能会对您有所帮助,请参阅下面给出的代码: -
public delegate void delgJournalBaseModified(string a);
public class User
{
public string id, name, email, image;
public User(string uid,string uName)
{
id = uid;
name = uName;
Console.WriteLine(this.name);
Console.WriteLine(this.email);
GetEmail();
}
private void GetEmail()
{
set(delegate(string d)
{
this.email = d;
});
}
private void set(delgJournalBaseModified delgJournalBaseModified)
{
delgJournalBaseModified.Invoke("value is set");
Console.WriteLine(this.email);
}
}
并在主要方法或任何你喜欢的地方这样调用..
User a1 = new User("123", "dev");
Console.WriteLine(a1.email);
现在,如果您将控制台"值设置为"正在打印两次。
由于 德文德拉