为什么我只得到".xlsx"而不是完整的连接字符串

Rey*_*ier 0 .net c#

在保存到我的电脑之前,我写了这段代码来设置文件名:

string name_file = System.IO.Path.GetFileName(openFileDialog1.FileName).Split('.')[0]
                   + blYear.SelectedValue == null ? "2010" : blYear.SelectedValue 
                   + ".xlsx"; 
Run Code Online (Sandbox Code Playgroud)

我跟踪代码并查看结果:

System.IO.Path.GetFileName(openFileDialog1.FileName).Split('.')[0]  "PSIQ DIGITEL"  string
blYear.SelectedValue                                                null            object
name_file                                                           ".xlsx"         string
Run Code Online (Sandbox Code Playgroud)

我做错了什么?为什么会name_file丢失原始值?另外,对于同样的问题,我如何删除最终file_name之间的空格,比如示例中的"PSIQ DIGITEL"应为"PSIQ-DIGITEL".

编辑

如果我删除这部分,+ blYear.SelectedValue == null ? "2010" : blYear.SelectedValue那么文件名取值很好,有什么不对?

Ben*_*igt 6

你的意思是这个吗?

((System.IO.Path.GetFileName(openFileDialog1.FileName).Split('.')[0] + blYear.SelectedValue) == null ? "2010" : blYear.SelectedValue) + ".xlsx"
Run Code Online (Sandbox Code Playgroud)

要么

(System.IO.Path.GetFileName(openFileDialog1.FileName).Split('.')[0] + blYear.SelectedValue) == null ? "2010" : (blYear.SelectedValue + ".xlsx")
Run Code Online (Sandbox Code Playgroud)

要么

System.IO.Path.GetFileName(openFileDialog1.FileName).Split('.')[0] + (blYear.SelectedValue == null ? "2010" : blYear.SelectedValue) + ".xlsx"
Run Code Online (Sandbox Code Playgroud)

要么 ?

使用括号告诉编译器你的意思,它不关注换行符和缩进.