去实现细节,我看到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类自动执行ICollection和IEnumerable它实现的那一刻IList?为什么这些明确实施?
在讨论关于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++中的函数指针。
\n\n1. 引入函数指针的主要原因是什么?是不是支持多线程?
\n\n\n\n\nHenk Holterman:委托/函数指针的存在是为了提供一定程度的灵活性。方法的选择可以与其调用分离。
\n
我在查看这个出色的线程资源时被介绍给代表
\n\nhttp://www.albahari.com/threading/
\n\n这是 Joe Albahari 关于异步委托的说法:
\n\n\n\n\n\n
ThreadPool.QueueUserWorkItem\xe2\x80\x99t 不提供一种简单的机制,用于在线程执行完成后从\n 获取返回值。异步委托调用(简称异步委托)解决了这个问题,允许双向传递任意数量的类型化参数。此外,异步委托上未处理的异常可以方便地在原始线程(或更准确地说,调用的线程EndInvoke)上重新引发,因此它们不需要显式处理。
*2. 所有委托本质上都是异步的吗?
\n\n\nJon:委托是指向代码的指针。它本质上既不是同步也不是异步;调用它的方式和返回的结果决定了这一点。
\n\nHenk Holterman:当你有一个委托实例 f 时,你可以同步调用 f() 或者异步调用 f.BeginInvoke()
\n
\n\n\ndasblinkenlight:异步 API 中委托有多种用途,例如.NET 异步 I/O。
\n
\n\n\ndasblinkenlight:委托的核心支持保持不变,但该语言添加了许多重要的功能,以使其更方便地定义委托。
\n
C# 2.0:引入匿名委托
\nC# 3.5:添加了 lambda 表达式 …
我有两种替代方法来执行一段代码.代码基本上重置了三个数组中的所有值.其中两个是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)
哪一个会更快?鉴于阵列可以具有不同的长度并且彼此没有关系.
有一个真正的好讨论在这里 …
我正在测试一个特殊的变化.这是ChangeSet:123456(让我们假设).我需要获得完整的解决方案,就像检查更改集的数据一样.
如果我获取特定版本 - >通过ChangeSet:123456,我只获得受更改集影响的文件.我无法得到整个项目.
请帮忙.
c# ×3
arrays ×2
delegates ×1
history ×1
if-statement ×1
javascript ×1
loops ×1
optimization ×1
tfs ×1
tfs2012 ×1