小编The*_*let的帖子

C#中的数组类实现

去实现细节,我看到Array类的实现

public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
Run Code Online (Sandbox Code Playgroud)

IList接口的实现读作

public interface IList : ICollection, IEnumerable
Run Code Online (Sandbox Code Playgroud)

我的问题是,不将Array类自动执行ICollectionIEnumerable它实现的那一刻IList?为什么这些明确实施?

c# arrays

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

声明一个数组类型

在讨论关于SO的另一个问题时,我被告知语法

int[] numbers = new int[10];
Run Code Online (Sandbox Code Playgroud)

比.更好

Array numbers = Array.CreateInstance(typeof(int), 10);
Run Code Online (Sandbox Code Playgroud)

我的问题是,第一个语法何时有用,何时第二个语法有用?为什么?

c# arrays

7
推荐指数
2
解决办法
3572
查看次数

代表的演变

我试图了解代表的演变。除了了解之前发生的事情之外,如何更好地理解这一点呢?据我所知,委托的概念来自于C++中的函数指针。

\n\n

1. 引入函数指针的主要原因是什么?是不是支持多线程?

\n\n
\n

Henk Holterman:委托/函数指针的存在是为了提供一定程度的灵活性。方法的选择可以与其调用分离。

\n
\n\n

我在查看这个出色的线程资源时被介绍给代表

\n\n

http://www.albahari.com/threading/

\n\n

这是 Joe Albahari 关于异步委托的说法:

\n\n
\n

ThreadPool.QueueUserWorkItem\xe2\x80\x99t 不提供一种简单的机制,用于在线程执行完成后从\n 获取返回值。异步委托调用(简称异步委托)解决了这个问题,允许双向传递任意数量的类型化参数。此外,异步委托上未处理的异常可以方便地在原始线程(或更准确地说,调用的线程EndInvoke)上重新引发,因此它们不需要显式处理。

\n
\n\n

*2. 所有委托本质上都是异步的吗?

\n\n
\n

Jon:委托是指向代码的指针。它本质上既不是同步也不是异步;调用它的方式和返回的结果决定了这一点。

\n\n

Henk Holterman:当你有一个委托实例 f 时,你可以同步调用 f() 或者异步调用 f.BeginInvoke()

\n
\n\n
    \n
  1. 除了事件之外,异步委托还有其他用途吗?
  2. \n
\n\n
\n

dasblinkenlight:异步 API 中委托有多种用途,例如.NET 异步 I/O

\n
\n\n
    \n
  1. C# 中的委托/线程支持在各个版本中是如何演变的?
    *
  2. \n
\n\n
\n

dasblinkenlight:委托的核心支持保持不变,但该语言添加了许多重要的功能,以使其更方便地定义委托。

\n
\n\n

C# 2.0:引入匿名委托
\nC# 3.5:添加了 lambda 表达式 …

c# history multithreading delegates

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

for loop与if条件

我有两种替代方法来执行一段代码.代码基本上重置了三个数组中的所有值.其中两个是int数组,一个是boolean.

选择1

for (i = 0; i < array1.length; i++)
    array1[i] = 0;

for (i = 0; i < array2.length; i++)
    array2[i] = 0;

for (i = 0; i < array3.length; i++)
    array3[i] = false;
Run Code Online (Sandbox Code Playgroud)

选择2

int limit = <assign the greatest of the array lengths>

for (i = 0; i < limit; i++)
{
    if (i < array1.length)
        array1[i] = 0;

    if (i < array2.length)
        array2[i] = 0;

    if (i < array3.length)
        array3[i] = false;
}
Run Code Online (Sandbox Code Playgroud)

哪一个会更快?鉴于阵列可以具有不同的长度并且彼此没有关系.

有一个真正的好讨论在这里 …

javascript optimization loops if-statement

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

从TFS获取特定的完整版本

我正在测试一个特殊的变化.这是ChangeSet:123456(让我们假设).我需要获得完整的解决方案,就像检查更改集的数据一样.

如果我获取特定版本 - >通过ChangeSet:123456,我只获得受更改集影响的文件.我无法得到整个项目.

请帮忙.

tfs tfs2012

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