小编Fan*_*Jia的帖子

我应该总是检查返回值是否为空

如果在一个班级A:

Class A
    public List<string> getValues
Run Code Online (Sandbox Code Playgroud)

如果我想调用该方法,我应该总是检查返回值是否为空?虽然我不认为它可能是null(应该是一个空列表).即

Class B
    public void GetSomething
        foreach (var thing in A.getValues)
            //do something....
Run Code Online (Sandbox Code Playgroud)

要么

Class B
    public void GetSomething
        var things = A.getValues;
        if (things != null)
        foreach (var thing in things)
            //then doing something....
Run Code Online (Sandbox Code Playgroud)

提出这个问题的原因是,当我编写单元测试时,我在A类中使该方法返回null而不是空列表,但是如果它发生的话我在现实生活中不知道,因为如果它可以为null那么它总是好的检查而不是尝试捕获异常,哪一个更合适?

c# null

2
推荐指数
1
解决办法
183
查看次数

我在哪里将[XmlAttribute]属性放在c#中?

我通过提供相应的公共财产将一些公共领域改为私人.

例如:

public string Name;
Run Code Online (Sandbox Code Playgroud)

改变了

private string _name;
public string Name
{
    get{ return _name;}
    set{ _name = value;}
}
Run Code Online (Sandbox Code Playgroud)

但是,原始公共字段的[XmlAttribute]属性呢?即

[XmlAttribute]
public string Name;
Run Code Online (Sandbox Code Playgroud)

变为:

[XmlAttribute]
private string _name;
public string Name
{
    get{ return _name;}
    set{ _name = value;}
}
Run Code Online (Sandbox Code Playgroud)

要么

private string _name;
[XmlAttribute]
public string Name
{
    get{ return _name;}
    set{ _name = value;}
}
Run Code Online (Sandbox Code Playgroud)

c# attributes xml-attribute

0
推荐指数
1
解决办法
603
查看次数

c*c的时间复杂度?

这里有时间复杂性问题:

for i = 1 to n
    if something
        p = p*c
    c = c*c
Run Code Online (Sandbox Code Playgroud)

对于第1行,时间复杂度应为n,但第3行和第4行呢?是n ^ 2?还是n ^ n?

language-agnostic algorithm big-o time-complexity

0
推荐指数
1
解决办法
109
查看次数