小编Bac*_*ave的帖子

如何防止favicon.ico请求?

我没有favicon.ico,但IE总是提出请求.

是否可以阻止浏览器请求我的网站的favicon?也许HTML标题中有一些META-TAG?

favicon

492
推荐指数
11
解决办法
28万
查看次数

在C#中"返回等待"的目的是什么?

没有像这样编写方法的场景:

public async Task<SomeResult> DoSomethingAsync()
{
    // Some synchronous code might or might not be here... //
    return await DoAnotherThingAsync();
}
Run Code Online (Sandbox Code Playgroud)

而不是这个:

public Task<SomeResult> DoSomethingAsync()
{
    // Some synchronous code might or might not be here... //
    return DoAnotherThingAsync();
}
Run Code Online (Sandbox Code Playgroud)

会有意义吗?

为什么return await在可以直接Task<T>从内部DoAnotherThingAsync()调用返回时使用构造?

return await在很多地方看到代码,我想我应该错过一些东西.但据我了解,在这种情况下不使用async/await关键字并直接返回Task将在功能上等效.为什么要增加附加await层的额外开销?

.net c# async-await .net-4.5

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

Debug.Assert vs Exception Throwing

我已经阅读了很多关于如何以及何时使用断言的文章(以及在StackOverflow上发布的其他几个类似问题),我对它们理解得很好.但是,我仍然不明白应该驱使我使用什么样的动机Debug.Assert而不是抛出一个普通的例外.我的意思是,在.NET中,对失败的断言的默认响应是"停止世界"并向用户显示一个消息框.虽然可以修改这种行为,但我觉得这样做非常烦人和多余,而我可以改为抛出一个合适的异常.这样,我可以在抛出异常之前轻松地将错误写入应用程序的日志,而且,我的应用程序不一定会冻结.

那么,为什么我应该使用Debug.Assert而不是普通的例外呢?将断言放在不应该出现的地方可能会导致各种"不需要的行为",所以在我看来,我真的没有通过使用断言而不是抛出异常来获得任何东西.你同意我的意见,还是我在这里遗漏了什么?

注意:我完全理解"在理论上"(调试与发布,使用模式等)之间的区别是什么,但正如我所看到的,我最好抛出异常而不是执行断言.因为如果在生产版本上发现了一个bug,我仍然希望"断言"失败(毕竟,"开销"非常小),所以我最好不要抛出异常.


编辑:我看到它的方式,如果断言失败,这意味着应用程序进入某种已损坏的意外状态.那么我为什么要继续执行呢?应用程序是否在调试版或发行版上运行并不重要.两者都是如此

c# exception assertions

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

与SQL IN运算符等效的linq是什么

使用linq我必须检查数组中是否存在行的值.
相当于sql查询:

WHERE ID IN (2,3,4,5)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

sql linq contains

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

当前的解决方案包含不正确的配置映射

我在VS中遇到这个错误:

当前的解决方案包含不正确的配置映射。它可能会导致项目无法正常运行。打开配置管理器来修复它们。

然后,我打开配置管理器,然后单击“关闭”,错误就会消失。

然后我可以看到它对我的 .sln 文件进行了这些更改:

在此输入图像描述

为什么原来的配置映射不正确?

visual-studio

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

为什么ushort + ushort等于int?

以前我今天尝试添加两个ushorts,我注意到我必须将结果反馈给ushort.我认为它可能会成为一个uint(以防止可能的意外溢出?),但令我惊讶的是它是一个int(System.Int32).

是否有一些聪明的理由或者是因为i​​nt被视为'基本'整数类型?

例:

ushort a = 1;
ushort b = 2;

ushort c = a + b; // <- "Cannot implicitly convert type 'int' to 'ushort'. An explicit conversion exists (are you missing a cast?)"
uint d = a + b; // <- "Cannot implicitly convert type 'int' to 'uint'. An explicit conversion exists (are you missing a cast?)"

int e = a + b; // <- Works!
Run Code Online (Sandbox Code Playgroud)

编辑:就像GregS的回答所说,C#规范说两个操作数(在这个例子中是'a'和'b')应该转换为int.我对为什么这是规范的一部分的根本原因感兴趣:为什么C#规范不允许直接对ushort值进行操作?

c# types integer-arithmetic

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

MVC3中Url.RouteUrl()和Url.Action()之间的区别

我正在我的cshtml页面中动态生成URL.Url.RouteUrl()和Url.Action()有什么区别?

我应该使用哪一个来生成URL,两者在实现方面有什么区别?

提前致谢.

asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

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

为什么类字段不能是var?

class A
{
    A()
    {
        var x = 5;   // this is allowed
    }

    var _x = 5;   // the compiler is unhappy
}
Run Code Online (Sandbox Code Playgroud)

我想编译器必须能够推导出成员变量的类型,就像它对本地变量一样.那有什么区别?

c#

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

如何在PowerShell中将命名参数定义为[ref]

我正在尝试使用[ref]命名参数.但是,我收到一个错误:

workflow Test
{
    Param([Parameter(Mandatory=$true)][String][ref]$someString)

    write-verbose $someString -Verbose
    $someString = "this is the new string"
}

cls
$someString = "hi"
Test -someString [ref]$someString
write-host $someString

#Error: Cannot process argument transformation on parameter 'someString'. Reference type is expected in argument.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

powershell powershell-workflow

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

当 Referer 有足够的信息时,为什么还要有 Origin 和 Referer 标头?

如果 Referer 标头中无论如何都有 Origin,那么同时拥有这两个标头有什么意义呢?

如果接收 HTTP 请求的服务器想知道 Origin,只需查看 Referer 标头中的域即可。

我知道如果是 HTTPS 到 HTTP 请求(以及许多其他场景),则不会发送 Referer 标头,但是为什么他们不设计它,而不是删除它,而是仍然发送它,但它只有域名(Origin 标头会有)?

http-referer http

20
推荐指数
1
解决办法
8967
查看次数