小编San*_*box的帖子

为什么我们需要new关键字,为什么要隐藏而不是覆盖默认行为?

我正在看这篇博文,并有以下问题:

  • 为什么我们需要new关键字,只是指定隐藏基类方法.我的意思是,为什么我们需要它?如果我们不使用override关键字,是不是我们隐藏了基类方法?
  • 为什么隐藏C#中的默认值而不是覆盖?为什么设计师会这样实现它?

c# overriding

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

信号量 - 初始计数有什么用?

http://msdn.microsoft.com/en-us/library/system.threading.semaphoreslim.aspx

要创建信号量,我需要提供初始计数和最大计数.MSDN声明初始计数是 -

可以同时授予的信号量的初始请求数.

虽然它声明最大数量是

可以同时授予的信号量的最大请求数.

我可以理解,最大计数是可以同时访问资源的最大线程数.但是,初始计数的用途是什么?

如果我创建一个初始计数为0且最大计数为2的信号量,则我的线程池线程都不能访问该资源.如果我将初始计数设置为1并将最大计数设置为2,则只有线程池线程可以访问该资源.只有当我将初始计数和最大计数都设置为2时,2个线程才能同时访问资源.那么,我真的很困惑初始计数的意义?

SemaphoreSlim semaphoreSlim = new SemaphoreSlim(0, 2); //all threadpool threads wait
SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 2);//only one thread has access to the resource at a time
SemaphoreSlim semaphoreSlim = new SemaphoreSlim(2, 2);//two threadpool threads can access the resource concurrently
Run Code Online (Sandbox Code Playgroud)

c# concurrency multithreading semaphore

72
推荐指数
5
解决办法
3万
查看次数

为什么每个公共类都在一个单独的文件中?

我最近开始学习Java,发现很奇怪每个Java类必须在一个单独的文件中声明.我是C#程序员,C#没有强制执行任何此类限制.

为什么Java会这样做?有任何设计考虑因素吗?

编辑(基于几个答案):

为什么Java现在还没有在IDE时代消除这种限制?这不会破坏任何现有代码(或者它会吗?).

java code-organization

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

git remote是什么意思?

遥控是什么意思?克隆位于中心位置的存储库时,我们不是在创建其远程版本吗?

当我执行命令

$ git remote
Run Code Online (Sandbox Code Playgroud)

我得到了起源.这是什么意思?

当我执行

$ git branch -r
Run Code Online (Sandbox Code Playgroud)

我得到了起源/主人.现在这是什么?

git git-remote

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

自动化单元测试 - 为什么?什么?哪一个?

我是一名C#winforms开发人员,拥有大约一年的经验.到目前为止,我一直在进行的唯一单元测试是手动的.我有一段时间考虑过以下事情:

  • 为什么我们需要进行自动化单元测试?效果如何?
  • 如果我想开始进行自动化单元测试.我应该从哪里开始?(听说过nunit)
  • 在设计课程时是否需要记住任何事情以促进自动化单元测试?
  • C#是否具有自动单元测试的内置支持?
  • 我们还可以使用自动化单元测试来测试GUI,还是只是业务逻辑?
  • 听说过嘲笑框架.它们也用于单元测试吗?

c# unit-testing winforms

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

处理器,操作系统:32位,64位

我是编程新手,来自非CS背景(没有正式学位).我主要使用C#编写winforms.

我对32位和64位感到困惑....我的意思是,已经听说过32位操作系统,32位处理器以及程序可以拥有的最大内存.它如何影响程序的速度.还有很多问题不断浮现在脑海中.

我试图浏览一些计算机组织和架构书籍.但是,要么我太愚蠢无法理解那里写的内容,要么作者认为读者有一些CS背景.

有人可以用一个简单的简单英语解释我这些东西,或者指出我做的事情.

编辑:我读过像32位模式这样的东西,它们可以访问高达4GB的内存; 在64位模式下,他们可以访问更多....我想知道为什么这样的事情.

BOUNTY:下面的答案非常好......尤其是马丁.但是,我正在寻找一个彻底的解释,但用简单的英语.

64-bit 32-bit processor 32bit-64bit

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

启动.net应用程序时会发生什么?

我一直在使用.net开发应用程序已有一段时间了.但是,我仍然不确定CLR是如何知道.net应用程序已经启动的.是否每个应用程序都有一个CLR实例?我不认为这可能是这种情况,因为只有一个GC管理所有.net应用程序的所有内存.CLR是否在后台运行?我很困惑.

.net c# clr

29
推荐指数
2
解决办法
5426
查看次数

有人可以揭开yield关键字的神秘面纱吗?

我已经看到在Stack Overflow和博客上使用了yield关键字.我不使用LINQ.有人可以解释yield关键字吗?

我知道存在类似的问题.但是没有一个能用简单的语言解释它的用途.

c# language-features yield

28
推荐指数
5
解决办法
4184
查看次数

.NET Framework中是否使用了任何设计模式?

我想知道:.NET Framework中是否使用了任何GoF设计模式?

BOUNTY:

我在答案中看到了下面的MSDN链接.是否有任何帖子/视频,或者你可以列出模式,最重要的是它在哪里使用?

.net design-patterns

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

抽象不应该依赖于细节.细节应该取决于抽象?

在过去的几天里,我已经阅读了很多关于依赖注入/控制/反转依赖的反转的内容.我认为,现在我对这个概念的理解要好得多.但我仍然没有从维基百科得到以下内容:

A.高级模块不应该依赖于低级模块.两者都应该取决于抽象.B.抽象不应该依赖于细节.细节应取决于抽象.

我理解高级模块的部分不应该依赖于低级模块.但是,我对抽象和细节感到困惑.有人可以为我简化它们.谢谢.

dependency-injection inversion-of-control

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