问题列表 - 第6200页

依赖注入和C#语法

我想知道是否有人可以在这段代码的一行中解释语法:

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# model-view-controller

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

有一种简单的方法可以使用InternalsVisibleToAttribute吗?

我有一个C#项目和一个带有主项目单元测试的测试项目.我想要有可测试的internal方法,我想测试它们没有你可以使用Visual Studio测试项目的神奇Accessor对象.我想使用,InternalsVisibleToAttribute但每次我都这样做,我必须回去查看如何做,我记得包括创建用于签署程序集的密钥文件,然后使用sn.exe获取公钥等等.

  • 是否有一个实用程序可以自动创建SNK文件,设置项目以对程序集进行签名,提取公钥以及应用InternalsVisibleTo属性?

  • 有没有办法使用没有签名程序集的属性?

.net c# visual-studio

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

LINQ语句,其中结果计数用于表达式的条件

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.感谢其他人的建议.

linq vb.net

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

忽略排队的鼠标事件

我有一个用C#编写的针对.NET Compact Framework 3.5的应用程序,在Windows CE上运行.有时会在UI线程上执行持续一秒左右的操作.我当前设置Cursor.Current属性以指示应用程序正忙,但这不会阻止急切用户排队的鼠标事件.这有时会导致意外点击.

在.NET Compact Framework平台上忽略排队鼠标消息的最佳方法是什么?遗憾的是,代码必须在UI线程上运行.

.net c# events compact-framework windows-ce

8
推荐指数
1
解决办法
3285
查看次数

如何解析代码以在Java中构建编译器?

我需要编写一个编译器.这是大学的家庭作业.老师告诉我们,我们可以使用任何我们想要解析代码的API,只要它是一个好的.这样我们就可以更专注于我们将生成的JVM.

所以,是的,我将用Java编写一个编译器来生成Java.

你知道这个有什么好的API吗?我应该使用正则表达式吗?我通常手工编写自己的解析器,但在这种情况下不可取.

任何帮助,将不胜感激.

java compiler-construction parsing parser-generator

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

ASP.NET MVC是否使Web窗体成为传统平台?

上周在Mix '09上,发布了ASP.NET MVC 1.0 的最终版本.

该框架的一些明确的好处是:

  • 明确分离关注点
  • 可测试性 - 支持测试驱动开发
  • 对HTML和JavaScript进行细粒度控制
  • 直观的网址

现在,微软小心翼翼地宣称这是"ASP.NET Web Forms的替代品,而不是替代品",但鉴于上述优势,我想知道:

  1. 在经典的ASP.NET Web Forms被认为是"遗留"框架之前,它会持续多长时间?
  2. 如果您今天开始开发新的.NET Web项目,为什么还要选择使用Web Forms而不是ASP.NET MVC?

asp.net asp.net-mvc

10
推荐指数
1
解决办法
3112
查看次数

Java:谷歌地图的替代品

我真的厌倦了使用Google Web Toolkit使用Netbeans访问Java中的谷歌地图......有没有人知道提供简单(r)API的好方法?

真的很感激任何帮助!

java api maps

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

C++中的宏扩展

如何定义参数位于行开头的宏(或其解决方法)?

#define SINGLETON_IMPLEMENTATION(className) \
    ##className* ##className::instance_ = NULL;
Run Code Online (Sandbox Code Playgroud)

这给出了编译器警告(GCC 3.2.3):"'##'不能出现在宏扩展的任何一端"

c++ macros

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

在事件处理程序中使用null check

检查事件处理程序是否为null时,是否基于每个线程完成?

确保有人正在听这个事件就像这样:

EventSeven += new DivBySevenHandler(dbsl.ShowOnScreen);
Run Code Online (Sandbox Code Playgroud)

如果我在上面检查null的模式之后添加代码,那么为什么我需要一个空检查(从这个站点获取的代码).我错过了什么?

此外,事件和GC的规则是什么?

c#

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

重定位.git文件夹

我不认为这可能没有一点点黑客攻击,只是把它扔出去.

在Git中,可以将.git文件夹(我假设的对象)的大部分重新定位到另一个位置.我有一个问题,没有我当前的硬盘充满git,我希望能够将其移动到一个单独的硬盘驱动器,以释放空间.

git

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