【发布时间】:2013-10-09 06:11:44
【问题描述】:
所以我正在研究一个调用我以前从未见过的函数的项目,而我才刚刚开始熟悉 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 中唯一的函数,它是在我获取文件时编写的一起工作。
因此,我无法让按钮连接到此功能。我不知道如何集成object sender, EventArgs e以便可以连接按钮(如果我直接这样做,即“(object sender, EventArgs e, string[] args)”,我会收到错误消息。我做错了什么?我该如何集成函数并使其按钮可寻址?
编辑:我已将有关三元运算符here 的问题移至未来读者的理智。如果您愿意,请重新发表您对此的意见,因为你们已经在这里帮助过我。
【问题讨论】:
-
最后一个问题是
ternary operatormsdn.microsoft.com/en-us/library/ty67wk28.aspx -
那么按照
condition ? first_expression : second_expression;的结构,条件是string path = args == null || args.Length == 0,first和second表达式分别是@"C:\GENERIC\SYSTEM\PATH"和args[1]? -
很高兴看到那些开发人员不相信方法的命名约定 :)
-
main函数的
args包含用户在启动程序时在命令行输入的文本;见Command Line Parameters。 Python 也有类似的行为,虽然更隐蔽;您可以通过sys.argv访问命令行参数 -
对于您问题的第一部分,如果您双击按钮(假设您使用的是 Visual Studio),它将自动进行点击回调。在该回调中,您可以调用 GENERIC_FUNCTION_NAME。不过,我不确定你会从哪里得到 string[] 。我们需要更多信息。