2014-09-05 145 views
1

我为这个愚蠢的问题表示歉意,但我是C#的新手,并且无法从与此错误相关的其他问题中找到帮助。C#对象不包含方法的定义

我创建了一个名为“Sender”的类,但是当我实例化一个对象时,我无法访问我的方法。当我尝试调用我的方法时,出现错误:“对象不包含sendMessage的定义。”我不知道我哪里错了。请指向正确的方向。

感谢您的帮助!

这是我的发件人类:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Net; 
using System.Net.Sockets; 
using System.Net.NetworkInformation; 

namespace CS5200_HW1_GUI 
{ 
    public class Sender 
    { 
     private UdpClient myUdpClient; 
     private IPEndPoint localEP; 
     string ipAddress = "129.123.41.1"; 
     string _port = "12001"; 

     public void sendMessage() 
     { 

     } 
     // byte[] sendBuffer = Encoding.Unicode.GetBytes(command); 
     // int result = myUdpClient.Send(sendBuffer, sendBuffer.Length, localEP); 

    } 
} 

这就是我想要调用方法:

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 
    using System.Net; 
    using System.Net.Sockets; 
    using System.Net.NetworkInformation; 

    namespace CS5200_HW1_GUI 
    { 
     public partial class Form1 : Form 
     { 
       //private UdpClient myUdpClient; 
       IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 0); 
       string command = string.Empty; 
       string newWord = String.Empty; 
       string guess = String.Empty; 
       string dashes = String.Empty; 
       string newAddress = string.Empty; 
       string newPort = string.Empty; 
       int score = 0; 
       int length = 0; 
       StringBuilder sb = new StringBuilder(); 
       Random random = new Random(); 

       Sender sender = new Sender(); 

       private void button1_Click(object sender, EventArgs e) 
       { 
        command = "NewGame"; 
        sender.sendMessage(command);    //I get the error here 
        newWord = receiver.receiveMessage(); 
        length = newWord.Length; 
       } 
     } 
    } 
+0

sendMessage方法不接受参数应sendMessage()不sendMessage(命令) – Sorceri 2014-09-05 16:39:02

回答

7

这是因为发送者既是发件人对象,还的一个点击处理程序的参数。

讲究方法签名:

private void button1_Click(object sender, EventArgs e) 

您指的是最接近的发送者,这是object型。为了解决这个问题,你必须重命名或者用this来调用它。

实施例:

this.sender.sendMessage() 
+1

我完全错过了范围 - 良好的捕获@Areks!他的参数传递也有问题。 – n8wrl 2014-09-05 16:38:36

+0

谢谢!只要我被允许这样做,我会接受你的答案。 – dransom90 2014-09-05 16:38:40

+0

+1我最初也错过了范围问题。 – BradleyDotNET 2014-09-05 16:42:23

4

要调用sender.sendMessage用参数(command

的唯一功能称为sendMessageSender对象上不带任何参数,因此匹配的方法是找不到的。

您还正在使用sender变量,它是Click方法(由于签名)中的变量。你应该使用不同的名字。

+0

然后错误就像'没有重载的方法' – Shaharyar 2014-09-05 16:38:57

+0

@Shaharyar我注意到其他错误太迟了:(它仍然是一个问题,但他修复了其他错误,虽然。 – BradleyDotNET 2014-09-05 16:39:47

+0

是的你是对的。有两个错误,但'method not found'错误出现在'overloaded method'错误之前。+1用于捕获另一个错误。 – Shaharyar 2014-09-05 16:42:44

相关问题