C# C语言中的语法混乱#
因此,我正在研究一个调用我以前从未见过的函数的项目,我对C#语法的熟悉才刚刚开始。我已经使用Python和Javascript好几个星期了,我对它们的使用已经有了一定的经验,但是这种语法仍然让我感到困惑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
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),它将自动进行单击回调。在该回调中,您可以调用泛型函数名称。不过,我不确定从何处获取字符串[]。我们需要更多信息。有关