【发布时间】:2015-09-10 11:47:40
【问题描述】:
根据这篇文章:
is this overkill for assessing Main(string[] args)
好像args永远不能为空
static void Main(string[] args)
很高兴知道,但是,假设 args.Length == 1 为真,是否可以有 args[0] == null ? 第一个观察:字符串数组可以有空元素
第二个观察:如果用命令行调用 main 我不知道如何传递 null 并且我认为这是不可能的,
第三个观察:另一方面(这有点牵强)可能有一些代码调用
Program.Main(new string[]{null})
因此,可能会产生在 args 数组中获取空值的情况。
所以问题是:
在 main 的论点中进行无效测试是矫枉过正还是好的做法? (特别是考虑到在第三个观察中调用 like 的主要情况不太可能)
例如:以下是否正确?
static void Main(string[] args)
{
if(args.Length == 1)
{
var v = args[0].Replace("Foo", "Bar");//hope args[0] is not null
或者我应该这样做
static void Main(string[] args)
{
if(args.Length == 1 && args[0] != null)
{
//...
注意:我将其标记为 C#,但我想这也适用于其他语言
【问题讨论】: