C# C语言中的语法混乱#

C# C语言中的语法混乱#,c#,syntax,C#,Syntax,因此,我正在研究一个调用我以前从未见过的函数的项目,我对C#语法的熟悉才刚刚开始。我已经使用Python和Javascript好几个星期了,我对它们的使用已经有了一定的经验,但是这种语法仍然让我感到困惑 private static void GENERIC_FUNCTION_NAME(string[] args) { GENERIC_OBJECT_NAME.OTHER_GENERIC_FUNCTION_NAME(); string path = arg

因此,我正在研究一个调用我以前从未见过的函数的项目,我对C#语法的熟悉才刚刚开始。我已经使用Python和Javascript好几个星期了,我对它们的使用已经有了一定的经验,但是这种语法仍然让我感到困惑

private static void GENERIC_FUNCTION_NAME(string[] args)
    {
        GENERIC_OBJECT_NAME.OTHER_GENERIC_FUNCTION_NAME();

        string path = args == null || args.Length == 0 ?
            @"C:\GENERIC\SYSTEM\PATH" :
            args[1];

        var GENERIC_VARIABLE_NAME = new GENERIC_OBJECT_NAME();
        GENERIC_VARIABLE_NAME.Open(path);
    }
我被这个函数参数的语法搞糊涂了

你知道,这个函数是在C++控制台应用程序中编写的,在项目中有很多C++组件来执行它要触发的工作。但是我被告知要为它构建一个GUI,在这里实现同样的目标。我甚至不确定什么被传递为

args
。。。因为我在脚本中代码旁边的任何地方都看不到它,这是当我得到要处理的文件时编写的
Program.cs
中唯一的函数

因为这个原因,我不能让一个按钮连接到这个函数。我不知道如何集成
对象发送器、事件args e
,以便可以连接按钮(如果我直接这样做,即,“
(对象发送器、事件args e、字符串[]args)
”,我会遇到一个错误。我做错了什么?我该如何集成函数并使其按钮可寻址


编辑:为了未来读者的理智,我已经移动了关于三元运算符的问题。如果您愿意,请重新发布您的输入,因为你们已经在这方面帮助了我。

我可以帮助解决语法问题

字符串路径等于@“C:\GENERIC\SYSTEM\path”或(:)args[1]

若要确定args==null或args.length==0,请使用@“C:\GENERIC\SYSTEM\PATH”,否则请使用args[1] 如下所示

if(args == null || args.Length == 0)
{
    string path = @"C:\GENERIC\SYSTEM\PATH" ;
}
else{
    string path = args[1];
}

下面是一些进一步的阅读

我可以帮助解决语法问题

字符串路径等于@“C:\GENERIC\SYSTEM\path”或(:)args[1]

若要确定args==null或args.length==0,请使用@“C:\GENERIC\SYSTEM\PATH”,否则请使用args[1] 如下所示

if(args == null || args.Length == 0)
{
    string path = @"C:\GENERIC\SYSTEM\PATH" ;
}
else{
    string path = args[1];
}

下面是一些进一步的阅读

我假设您的方法被称为
Main
,并且默认情况下是
Program.cs中唯一的方法

此主方法在执行程序时接受参数,例如使用可选参数(如
app.exe-myArg
)通过CMD运行,并将其转换为字符串数组。有关详细信息,请参阅

如果没有,您可以右键单击方法名称,查看所有引用,或者查找调用层次结构以确定调用它的内容

关于你的第二期。。。 您所看到的是一个特殊的条件运算符,the.(这是一个很好的教程)

它是这样使用的:

condition ? first_expression : second_expression;
基本上,如果该语句为真,则执行第一个表达式,如果不是,则执行第二个表达式。一般来说,它是
if/else
块的一个小快捷方式,应该仅用于小语句。嵌套三元运算符在很大程度上是不受欢迎的

所以如果
args==null | | args.Length==0
然后
path=@“C:\GENERIC\SYSTEM\path”
,如果不是,则等于
args[1]

它相当于您的标准
if

string path;
if(args == null || args.Length == 0)
{
   path = @"C:\GENERIC\SYSTEM\PATH";
}
else
{
   path = args[1];
}

现在已经解决了,如果您在设计器中双击按钮,它将为您(或生成)一个在单击按钮时执行的方法。从那里您可以使用该方法的参数调用该方法(如果它是
main
,我不确定你为什么要这样做。但我不确定我是否完全理解这个问题)

我假设你的方法被称为
main
,并且默认情况下是
Program.cs
中唯一的方法

此主方法在执行程序时接受参数,例如使用可选参数(如
app.exe-myArg
)通过CMD运行,并将其转换为字符串数组。有关详细信息,请参阅

如果没有,您可以右键单击方法名称,查看所有引用,或者查找调用层次结构以确定调用它的内容

关于你的第二期。。。 您所看到的是一个特殊的条件运算符,the.(这是一个很好的教程)

它是这样使用的:

condition ? first_expression : second_expression;
基本上,如果该语句为真,则执行第一个表达式,如果不是,则执行第二个表达式。一般来说,它是
if/else
块的一个小快捷方式,应该仅用于小语句。嵌套三元运算符在很大程度上是不受欢迎的

所以如果
args==null | | args.Length==0
然后
path=@“C:\GENERIC\SYSTEM\path”
,如果不是,则等于
args[1]

它相当于您的标准
if

string path;
if(args == null || args.Length == 0)
{
   path = @"C:\GENERIC\SYSTEM\PATH";
}
else
{
   path = args[1];
}

现在已经解决了,如果您在设计器中双击按钮,它将为您(或生成)一个在单击按钮时执行的方法。从那里您可以使用该方法的参数调用该方法(如果是
main
,我不知道你为什么要这样做。但我不确定我是否完全理解这个问题)

对于最后一个问题,它是一个
三元运算符
,因此遵循
条件的结构?第一个表达式:第二个表达式;
,条件是
字符串路径=args==null | | args。长度==0
第一个表达式和
第二个表达式是
@“C:\GENERIC\SYSTEM\path”
args[1]
?很高兴看到那些开发人员不相信方法的命名约定:)主函数的
args
包含用户在启动程序时在命令行上输入的文本;请参阅。Python有类似的行为,尽管有些隐藏;如果双击按钮,您可以通过
sys.argv
访问问题的第一部分的命令行args(假设您使用的是Visual Studio),它将自动进行单击回调。在该回调中,您可以调用泛型函数名称。不过,我不确定从何处获取字符串[]。我们需要更多信息。有关