相关疑难解决方法(0)

Assert.AreEqual 如何比较 .net 单元测试中的两个对象?

我正在为我编写的一些 .net 代码编写单元测试。

我熟悉这样编写代码:

int expected = 10;
int actual = multiplyByTwo(5);
Assert.AreEqual(expected, actual);
Run Code Online (Sandbox Code Playgroud)

在参数是整数的情况下,很清楚期望代码做什么。

当传入的参数是对象时,代码会做什么?

如果我编写了一个名为 的自定义类MyClass,那么如何控制Assert.AreEqual类型对象的通过和失败时间MyClass

.net unit-testing assert vs-unit-testing-framework

5
推荐指数
1
解决办法
5093
查看次数

IsNullOrEmpty参数中的Concat字符串

我正在查看我在C#中编写的一段代码:

if(string.IsNullOrEmpty(param1) && string.IsNullOrEmpty(param2) && string.IsNullOrEmpty(param3))
{
       // do stuff
}
Run Code Online (Sandbox Code Playgroud)

并决定使其更具可读性/简洁性

if(string.IsNullOrEmpty(param1+param2+param3))
{
       // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但看着它我忍不住畏缩.你对此有何看法?你有没有做过这样的事情,你是否适用它?

注意:此行之前的代码将通过添加特定项来操作集合,具体取决于param(param1,param2,param3)是否为空.此if语句用于验证/错误处理.

c# string

4
推荐指数
1
解决办法
1287
查看次数

C#中的"扩展方法"是什么意思?

任何人都可以解释这一点,(初学者的方法).谢谢..

c#

4
推荐指数
1
解决办法
498
查看次数

如何将多个变量与单个条件进行比较?

我有这个:

if (input.Text.ToUpper() == "STOP")
Run Code Online (Sandbox Code Playgroud)

但是有很多可能的值,我无法像这样单独指定它们:

if (input.Text.ToUpper() == "STOP" || input.Text.ToUpper() == "END")
Run Code Online (Sandbox Code Playgroud)

有没有办法可以做到这样的事情:

if (input.Text.ToUpper() == "STOP", "END", "NO", "YES")
Run Code Online (Sandbox Code Playgroud)

那么使用STOP,END,NO或YES会完成任务吗?

使用任何包含将不起作用,其他时候接受的单词将在其中包含单词STOP和END.

c# collections if-statement

4
推荐指数
2
解决办法
221
查看次数

扩展方法可以有通用参数吗?

扩展方法可以说:List作为参数之一吗?

public static IEnumerable<XElement> GetSequenceDescendants(this IEnumerable<XElement> elements, params List<XName> names)
        {
            //do something
        }
Run Code Online (Sandbox Code Playgroud)

扩展方法可以对参数类型有任何限制吗?

c# linq generics extension-methods linq-to-xml

3
推荐指数
1
解决办法
1095
查看次数

null == x和x == null之间的区别?

可能重复:
这些(bCondition == NULL)和(NULL == bCondition)有什么区别?

我已经看到两种方式都进行了比较.是否有性能差异或仅仅是个人偏好?

我看到它在这个答案中被使用:

你最喜欢的C#扩展方法是什么?(codeplex.com/extensionoverflow)

c#

3
推荐指数
3
解决办法
3948
查看次数

如果C#中的语句有更简单的方法吗?

我有以下内容:

if (model.PartitionKey.Substring(2, 2) == "05" || 
    model.PartitionKey.Substring(2, 2) == "06")
Run Code Online (Sandbox Code Playgroud)

我更喜欢这个.是否有更简洁的方法来编码,我不必重复model.PartitionKey两次?

c#

3
推荐指数
4
解决办法
322
查看次数

进出XML的对象:通用加载和保存

我需要将一些对象存储为XML文件,以便保存数据并在以后加载.我编码了这个,它对我有用:

public static Project Load(String file)
{
    using (var stream = System.IO.File.OpenRead(file))
    {
        var serializer = new XmlSerializer(typeof(Project));
        return serializer.Deserialize(stream) as Project;
    }
}

public static void Save(Project p, String file)
{
    using (var writer = new System.IO.StreamWriter(file))
    {
        var serializer = new XmlSerializer(p.GetType());
        serializer.Serialize(writer, p);
        writer.Flush();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要使用其他类型的对象执行此操作,并且我不想真正为每个对象类复制/粘贴这些方法.

是否可以将对象类传递给方法并使这些方法对任何对象类都通用?

c# xml generics serialization

3
推荐指数
1
解决办法
1595
查看次数

在多个值上使用布尔运算符的快捷方式

首先,如果标题不清晰或具有描述性,请对不起; 我不知道该写些什么.

我想知道是否有更好的方法来执行此操作:

bool result = variable1.innerValue.level2.innerValue == 1 || 
              variable1.innerValue.level2.innerValue == 2 || 
              variable1.innerValue.level2.innerValue == 3;
Run Code Online (Sandbox Code Playgroud)

我们写不出类似的东西:

bool result = variable1.innerValue.level2.innerValue == (1 || 2 || 3);
Run Code Online (Sandbox Code Playgroud)

这将产生语法错误.

有任何想法吗?

c#

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

如何将大IF条件转换为小条件

我必须以简短而智能的方式实现一个非常大的If和else语句.

例如 :

If(seg.status =="hl"||seg.status =="hl2"||seg.status =="hl3"||seg.status =="hl4"||seg.status =="hl4"||seg.status =="hl5"||seg.status =="hl6"||seg.status =="hl7")
Run Code Online (Sandbox Code Playgroud)

进入小而聪明的方式

c#

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