我想知道是否有人可以在这段代码的一行中解释语法:
public class ContactController : Controller
{
private IContactManagerRepository _repository;
**public ContactController()
: this(new EntityContactManagerRepository())**
{}
public ContactController(IContactManagerRepository repository)
{
_repository = repository;
}
Run Code Online (Sandbox Code Playgroud)
我特别感兴趣的是第一个构造函数.我从文章中了解到了(http://www.asp.net/learn/mvc/tutorial-29-cs.aspx - 清单3)第一个构造函数调用第二个,intellisense告诉我何时将鼠标悬停在此(新的EntityContactManagerRepository())上确实是指第二个构造函数.但是我之前没有看过带冒号的构造函数.我知道类声明中的冒号告诉编译器ContactController继承自Controller,但构造函数中的冒号是做什么的?
我有一个C#项目和一个带有主项目单元测试的测试项目.我想要有可测试的internal方法,我想测试它们没有你可以使用Visual Studio测试项目的神奇Accessor对象.我想使用,InternalsVisibleToAttribute但每次我都这样做,我必须回去查看如何做,我记得包括创建用于签署程序集的密钥文件,然后使用sn.exe获取公钥等等.
是否有一个实用程序可以自动创建SNK文件,设置项目以对程序集进行签名,提取公钥以及应用InternalsVisibleTo属性?
有没有办法使用没有签名程序集的属性?
O'LinQ-fu大师,请帮忙.
我有一个要求,我必须使用VB.NET中的Target.AddRange()从IEnumerable(Of T)(让我们称之为Source)将项添加到List(Of T)(让我们称之为Target).
Target.AddRange(Source.TakeWhie(Function(X, Index) ?))
Run Code Online (Sandbox Code Playgroud)
的?part是一个棘手的条件,例如:只要尚未列举的计数不等于将列表填充到所需的最小值,然后随机决定是否应该采用当前项目,否则采取该项目. Somethig喜欢......
Source.Count() - Index = _minimum_required - _curr_count_of_items_taken _
OrElse GetRandomNumberBetween1And100() <= _probability_this_item_is_taken
' _minimum_required and _probability_this_item_is_taken are constants
Run Code Online (Sandbox Code Playgroud)
令人困惑的部分是每次满足TakeWhile语句时都需要递增_curr_count_of_items_taken.我该怎么做呢?
我也对使用任何其他LINQ方法(Aggregate,Where等)而不是TakeWhile的解决方案持开放态度.
如果所有其他方法都失败了,那么我将回到使用一个好的旧的for-loop =)
但希望有一个LINQ解决方案.在此先感谢您的任何建议.
编辑:请求的旧的for-loop版本:
Dim _source_total As Integer = Source.Count()
For _index As Integer = 0 To _source_total - 1
If _source_total - _index = MinimumRows - Target.Count _
OrElse NumberGenerator.GetRandomNumberBetween1And100 <= _possibility_item_is_taken Then
Target.Add(Source(_index))
End If
Next
Run Code Online (Sandbox Code Playgroud)
编辑:大卫的无副作用答案接近我需要的同时保持可读性.也许他是唯一一个能理解我传达不良的伪代码的人.事后看来,OrderBy(GetRandomNumber)非常出色.我只需要将Take(3)部分更改为Take(MinimumRequiredPlusAnOptionalRandomAmountExtra)并在结尾处删除OrderBy和Select.感谢其他人的建议.
我有一个用C#编写的针对.NET Compact Framework 3.5的应用程序,在Windows CE上运行.有时会在UI线程上执行持续一秒左右的操作.我当前设置Cursor.Current属性以指示应用程序正忙,但这不会阻止急切用户排队的鼠标事件.这有时会导致意外点击.
在.NET Compact Framework平台上忽略排队鼠标消息的最佳方法是什么?遗憾的是,代码必须在UI线程上运行.
我需要编写一个编译器.这是大学的家庭作业.老师告诉我们,我们可以使用任何我们想要解析代码的API,只要它是一个好的.这样我们就可以更专注于我们将生成的JVM.
所以,是的,我将用Java编写一个编译器来生成Java.
你知道这个有什么好的API吗?我应该使用正则表达式吗?我通常手工编写自己的解析器,但在这种情况下不可取.
任何帮助,将不胜感激.
上周在Mix '09上,发布了ASP.NET MVC 1.0 的最终版本.
该框架的一些明确的好处是:
- 明确分离关注点
- 可测试性 - 支持测试驱动开发
- 对HTML和JavaScript进行细粒度控制
- 直观的网址
现在,微软小心翼翼地宣称这是"ASP.NET Web Forms的替代品,而不是替代品",但鉴于上述优势,我想知道:
我真的厌倦了使用Google Web Toolkit使用Netbeans访问Java中的谷歌地图......有没有人知道提供简单(r)API的好方法?
真的很感激任何帮助!
如何定义参数位于行开头的宏(或其解决方法)?
#define SINGLETON_IMPLEMENTATION(className) \
##className* ##className::instance_ = NULL;
Run Code Online (Sandbox Code Playgroud)
这给出了编译器警告(GCC 3.2.3):"'##'不能出现在宏扩展的任何一端"
检查事件处理程序是否为null时,是否基于每个线程完成?
确保有人正在听这个事件就像这样:
EventSeven += new DivBySevenHandler(dbsl.ShowOnScreen);
Run Code Online (Sandbox Code Playgroud)
如果我在上面检查null的模式之后添加代码,那么为什么我需要一个空检查(从这个站点获取的代码).我错过了什么?
此外,事件和GC的规则是什么?
我不认为这可能没有一点点黑客攻击,只是把它扔出去.
在Git中,可以将.git文件夹(我假设的对象)的大部分重新定位到另一个位置.我有一个问题,没有我当前的硬盘充满git,我希望能够将其移动到一个单独的硬盘驱动器,以释放空间.