从委托访问类字段

时间:2014-08-06 08:11:30

标签: c#

所以我有一个简单的用户类:

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

1 个答案:

答案 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);

现在,如果您将控制台"值设置为"正在打印两次。

由于 德文德拉

相关问题