小编Ste*_*ris的帖子

如何轻松初始化元组列表?

我喜欢元组.它们允许您快速将相关信息分组在一起,而无需为其编写结构或类.这在重构非常本地化的代码时非常有用.

然而,初始化它们的列表似乎有点多余.

var tupleList = new List<Tuple<int, string>>
{
    Tuple.Create( 1, "cow" ),
    Tuple.Create( 5, "chickens" ),
    Tuple.Create( 1, "airplane" )
};
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法?我希望得到一个类似于字典初始化器的解决方案.

Dictionary<int, string> students = new Dictionary<int, string>()
{
    { 111, "bleh" },
    { 112, "bloeh" },
    { 113, "blah" }
};
Run Code Online (Sandbox Code Playgroud)

我们不能使用类似的语法吗?

c# collections tuples list .net-4.0

251
推荐指数
5
解决办法
22万
查看次数

我什么时候应该在ASP.NET MVC中使用异步控制器?

我有一些担心在ASP.NET MVC中使用异步操作.当它提高了我的应用程序的性能,并且在做它不是

  1. 在ASP.NET MVC中使用异步操作是否合适?
  2. 关于等待方法:当我想查询数据库时(通过EF/NHibernate /其他ORM),我应该使用async/await关键字吗?
  3. 我可以使用await关键字在一个动作方法中异步查询数据库多少次?

c# asp.net asynchronous async-await asp.net-mvc-4

202
推荐指数
6
解决办法
10万
查看次数

你如何完全删除wpf中的按钮边框?

我正在尝试创建一个按钮,其中包含一个图像而没有边框 - 就像Firefox工具栏按钮,然后将鼠标悬停在它们上面并查看完整按钮.

我已尝试设置BorderBrushto Transparent,BorderThicknessto 0,并尝试过BorderBrush="{x:Null}",但您仍然可以看到按钮的轮廓.

wpf transparency button

127
推荐指数
5
解决办法
12万
查看次数

使用NewtonSoft在一行中生成JSON对象

我正在使用JSON库NewtonSoft生成JSON字符串:

JObject out = JObject.FromObject(new
            {
                typ = "photos"
            });

            return out.ToString();
Run Code Online (Sandbox Code Playgroud)

输出:

{
  "typ": "photos"
}
Run Code Online (Sandbox Code Playgroud)

我的问题:是否有可能将输出放在一行中,如:

{"typ": "photos"}
Run Code Online (Sandbox Code Playgroud)

c# json json.net

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

是否可以在匿名函数中设置断点?

我很快就想确定是否/何时触发了一组事件.因此我很快给他们分配了空的lambda.

_session.TopologyStarted += () => { };
Run Code Online (Sandbox Code Playgroud)

在触发事件时跟踪代码时,调试器进入匿名函数,允许调试它的执行.但是,在此代码行上设置断点时,会在为事件分配匿名函数时设置断点.

有没有办法在匿名函数中设置断点?

c# lambda anonymous-function visual-studio-2010

51
推荐指数
1
解决办法
9390
查看次数

为什么MVC4使用服务定位器反模式?

在阅读Mark Seemann的".NET中的依赖注入"后,我远离服务定位器,这是一种反模式.

在阅读MVC 4上的发行说明后,我看到:

通过DependencyResolver改进了控制反转(IoC):Web API现在使用MVC依赖解析器实现的服务定位器模式来获取许多不同设施的实例.

因此,我对于微软在2012年使用服务定位器的原因感到好奇和困惑.

dependency-injection ioc-container service-locator asp.net-mvc-4

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

在C#中由lambda创建的委托的生命周期是多少?

Lambdas很不错,因为它们提供简洁和局部性以及额外形式的封装.而不必编写只使用一次可以使用lambda的函数.

在想知道它们是如何工作的时候,我直觉地认为它们可能只创建过一次.这激发了我创建一个解决方案,该解决方案允许通过使用lambda作为其创建范围的标识符,将类成员的范围限制在私有范围之外.

这种实现虽然可能有些过分(仍在研究它),但可以证明我的假设是正确的.

一个较小的例子:

class SomeClass
{
    public void Bleh()
    {
        Action action = () => {};
    }

    public void CallBleh()
    {
        Bleh();  // `action` == {Method = {Void <SomeClass>b__0()}}
        Bleh();  // `action` still == {Method = {Void <SomeClass>b__0()}}
    }
}
Run Code Online (Sandbox Code Playgroud)

lambda会返回一个新实例,还是保证总是相同?

c# lambda delegates

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

C#中的命名空间冲突

System程序命名空间中有一个命名空间.结果我无法System从我的内部看到标准命名空间.我该如何解决这个问题?

在此输入图像描述

例如,在C++中,有一个::运算符将我"移出"我的命名空间,因此我可以看到与我当前命名空间同名的外部命名空间:

在此输入图像描述

C#中是否有类似的运算符?

c# namespaces

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

比较盒装值类型

今天我偶然发现了一个有趣的错误.我有一组属性可以通过一般的setter设置.这些属性可以是值类型或引用类型.

public void SetValue( TEnum property, object value )
{
    if ( _properties[ property ] != value )
    {
        // Only come here when the new value is different.
    }
}
Run Code Online (Sandbox Code Playgroud)

在为此方法编写单元测试时,我发现值类型的条件始终为真.我花了很长时间才弄清楚这是由于拳击/拆箱.我没有花太多时间将代码调整为以下内容:

public void SetValue( TEnum property, object value )
{
    if ( !_properties[ property ].Equals( value ) )
    {
        // Only come here when the new value is different.
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我对这个解决方案并不完全满意.我想保留一个简单的参考比较,除非该值被加框.

我想到的当前解决方案只是要求Equals()盒装值.这样做的装箱值的检查似乎有点矫枉过正.是不是有更简单的方法?

c# boxing unboxing equality

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

如何使用C#查找默认Web浏览器?

有没有办法可以使用C#查找我的默认Web浏览器的名称?(Firefox,谷歌浏览器等..)

能告诉我一个例子吗?

c#

32
推荐指数
5
解决办法
2万
查看次数