2013-05-14 2 views
0

안녕하세요이 코드가 : 여기내 C# 어셈블리 또는 코드?

내가 오류 얻을

private void button1_Click(object sender, EventArgs e) 
    { 
     if (radioButton1.Checked) 
     { 
      UDP.startflood(textBox1.Text, Convert.ToInt32(textBox3.Text), int.Parse(textBox4.Text), int.Parse(textBox2.Text), int.Parse(textBox5.Text)); 

     } 
    } 

"형식 또는 네임 스페이스 이름 startflood 네임 스페이스의 UDP에 존재하지 않습니다 (? 당신이 어셈블리 참조가 있는지 확인)"을 갈라 내 UDP.cs :

public Thread[] Sockets; 
     public string _Host; 
     public int _Delay; 
     public int _Sockets; 
     public int _Port; 
     public int _Timeout; 

    public void startflood(string Host, Int32 Delay, int Socketss, int Port, int Timeout) 
    { 
     _Host = Host; 
     _Delay = Delay; 
     _Sockets = Socketss; 
     _Port = Port; 
     _Timeout = Timeout; 

     Sockets = new Thread[_Sockets]; 
     for (int i = 0; i < _Sockets; i++) 
     { 
      Sockets[i] = new Thread(this.flood); 
      Sockets[i].IsBackground = true; 
      Sockets[i].Start(); 
     } 

    } 
    public void flood() 
    { 
    i have some code here 
    } 

제발 내가 도와 줄 사람이 있니? 고맙습니다.

+0

주의 깊게 오류 메시지를 읽고있다. UDP를 역 참조하기 때문에이 클래스 정의가 무엇이든간에 유형이 UDP라고 선언 된 멤버 변수가 있어야합니다. –

+0

startflood를 포함하는 파일의 맨 위에 무엇이 있습니까? 네임 스페이스와 클래스 이름이 필요합니다. – devdigital

+0

'startflood'가 들어있는 클래스의 이름은 무엇입니까? 그 외에도 새 객체를 만들지 않고 메서드를 호출합니다. 새 객체를 인스턴스화하거나 메소드를 '정적'으로 표시하십시오. – Kenneth

답변

2

마치 정적 메서드 인 것처럼 startflood을 호출하는 것입니다.

당신은 당신의 UDP 클래스의 인스턴스를 생성해야합니다 :

var udp = new UDP(); 
udp.startflood(textBox1.Text, Convert.ToInt32(textBox3.Text), int.Parse(textBox4.Text), int.Parse(textBox2.Text), int.Parse(textBox5.Text)); 
+0

startflood가 정적이면 클래스 변수도 정적이어야합니다. –

+0

@RobertNoack - 그렇습니다. 게시하기 전에 구현에서 * 보았을 것입니다. 이것을 인스턴스 메서드로 유지하는 것이 가장 좋은 방법입니다. 잘 잡으세요! –