Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在一种情况下可以使用多种方法?_C# - Fatal编程技术网

C# 在一种情况下可以使用多种方法?

C# 在一种情况下可以使用多种方法?,c#,C#,例如,我在c#中编写了一些代码; 如果(条件) { private void ribbonPanel1_单击(对象发送者,事件参数e) { 做点什么; } 私有void Form1\u按键(对象发送方,按键事件参数e) { 做点什么; } private void ribbonPanel1_单击(对象发送者,事件参数e) { 做点什么; } } 允许这样做吗?我们可以在任何情况下限制多种控制方法吗?不仅当我们可以使用任何循环时?请改为这样做 private void ribbonPan

例如,我在
c#
中编写了一些代码;

如果(条件) { private void ribbonPanel1_单击(对象发送者,事件参数e) { 做点什么; } 私有void Form1\u按键(对象发送方,按键事件参数e) { 做点什么; } private void ribbonPanel1_单击(对象发送者,事件参数e) { 做点什么; } }
允许这样做吗?我们可以在任何情况下限制多种控制方法吗?不仅当我们可以使用任何循环时?

请改为这样做

 private void ribbonPanel1_Click(object sender, EventArgs e)
    {
     if (condition)
       {
         Do something ; 
       }
    }

不能限制特定的方法。但您可以做的是在特定条件下调用该方法

public bool Condition;

private void ribbonPanel1_Click(object sender, EventArgs e)
{
    if (Condition) ThingsYouWantToDo();
}

private void ThingsYouWantToD()
{
//Stuff
}
但是等等。。。你是在说条件编译器指令吗?比如:

private static void Main()
{
    #if DEBUG
    Console.WriteLine("You are running debug version!");
    #endif

    Console.WriteLine("Program is starting!");
}

你到底想干什么?实际上你不能这样做。编译器会发现这个错误…是的,我们可以这样做,但是如果我想限制一些方法呢?创建一个公共bool,如果条件为true,则设置它,然后检查每个方法中的bool是否为true
private void ribbonPanel1_Click(object sender, EventArgs e)
{
    if (Condition)
        DoFirstStuff();
    else if (Condition2)
        DoSecondStuff();
    else
        DoThirdStuff();
}
private static void Main()
{
    #if DEBUG
    Console.WriteLine("You are running debug version!");
    #endif

    Console.WriteLine("Program is starting!");
}