【问题标题】:C# Skype Chat BotC# Skype 聊天机器人
【发布时间】:2018-05-02 04:27:16
【问题描述】:

所以,我正在制作一个简单的聊天机器人,但是当我尝试通过一个按钮将它附加到 Skype 时,它​​只是因溢出而崩溃,我正在按照教程并完成教程中的所有操作,但它只是崩溃了我按下附加按钮。不知道为什么,因为它似乎适用于使用 Skype4COM.dll 的其他所有人

    private void Form1_Load(object sender, EventArgs e)
    {
    }

    private void materialRaisedButton1_Click(object sender, EventArgs e)
    {
        System.Windows.Forms.Application.Exit();

    }

    public Skype MySkype 
    { 
         get => MySkype; 
         set => MySkype = value; 
    }

    private void materialFlatButton1_Click(object sender, EventArgs e)
    {
        MySkype.Attach(5, false);
        MessageBox.Show("Process Atached " + MySkype.CurrentUserHandle);
    }
}

}

【问题讨论】:

  • MySkype 是一个属性,您在它的 getter 和 setter 中引用自己。该属性应定义为public Skype MySkype{get;set;}

标签: c# process bots skype chatbot


【解决方案1】:

您收到 StackOverflow 异常,因为 getset 访问器引用了属性而不是您应该创建的私有字段;本质上,这会导致无限的递归循环,最终导致进程耗尽可用的RAM

你的财产应该是这样的:

public Skype MySkype 
{ 
       get => _mySkype; 
       set => _mySkype = value; 
}

应该始终以 _ 前缀命名私有字段,以将它们与属性区分开来。


另一种方法是:

Skype MySkype { get; set; }

【讨论】:

  • Oooooohhhh,是的,我是新人,哈哈,但我犯了很多这些基本错误,向他们学习,我只是认为教程不会让我像那样挂,而且我只是在某个地方忘记了一些东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
  • 2022-12-23
相关资源
最近更新 更多