相关疑难解决方法(0)

C#或.NET中最糟糕的问题是什么?

我最近在使用一个DateTime对象,并写了这样的东西:

DateTime dt = DateTime.Now;
dt.AddDays(1);
return dt; // still today's date! WTF?
Run Code Online (Sandbox Code Playgroud)

intellisense文档AddDays()说它增加了一天的日期,它没有 - 它实际上返回添加了一天的日期,所以你必须写如下:

DateTime dt = DateTime.Now;
dt = dt.AddDays(1);
return dt; // tomorrow's date
Run Code Online (Sandbox Code Playgroud)

这个曾经多次咬过我,所以我认为编制最糟糕的C#陷阱会很有用.

.net c#

377
推荐指数
45
解决办法
4万
查看次数

收益率和异常处理

我刚才有一个使用yield返回的方法没有抛出我期望的ArgumentException的情况.我在这里用最简单的可能类重构了这个案例:

class Program
{
    static void Main(string[] args)
    {
        try
        {
            var listA = FooA(count: 0);
            Console.WriteLine("A did not throw exception!");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("A threw exception!");
        }

        try
        {
            var listB = FooB(count: 0);
            Console.WriteLine("B did not throw exception!");
        }
        catch (ArgumentException)
        {
            Console.WriteLine("B threw exception!");
        }

        Console.ReadLine();
    }

    private static IEnumerable<int> FooA(int count)
    {
        if(count == 0)
            throw new ArgumentException("Count must be above 0");
        var list = new List<int>();
        for (var i = 0; i < count; …
Run Code Online (Sandbox Code Playgroud)

c# clr jit exception yield-return

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

什么是集合语义(在.NET中)?

我需要在自己的类中维护集合语义.你不能解释一下,什么是集合语义?据我所知,它是一组必须在类中实现的一些接口.这是真的吗?如果是的话 - 必须在课堂上实现什么为什么?这两个接口--ICollection和IEnumerable - 是否足够,或者这些只是最必要的接口?

我正在编写循环链表,使用本文作为帮助.

.net c# collections interface semantics

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

标签 统计

c# ×3

.net ×2

clr ×1

collections ×1

exception ×1

interface ×1

jit ×1

semantics ×1

yield-return ×1