小编Cod*_*aos的帖子

在C#中字符串前面的@是什么?

这是C#(或可能是VB.net)的.NET问题,但我试图找出以下声明之间的区别:

string hello = "hello";
Run Code Online (Sandbox Code Playgroud)

string hello_alias = @"hello";
Run Code Online (Sandbox Code Playgroud)

在控制台上打印没有区别,长度属性是相同的.

.net c# string

572
推荐指数
8
解决办法
24万
查看次数

计算文件的MD5校验和

我正在使用iTextSharp从PDF文件中读取文本.但是,有时我无法提取文本,因为PDF文件只包含图像.我每天都下载相同的PDF文件,我想查看PDF是否已被修改.如果无法获得文本和修改日期,MD5校验和是否是判断文件是否已更改的最可靠方法?

如果是的话,一些代码样本会受到赞赏,因为我对密码学没有多少经验.

.net c# hash md5

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

如何将两个IEnumerable <T>连接成一个新的IEnumerable <T>?

我有两个IEnumerable<T>(相同T)的实例.我想要一个新的实例IEnumerable<T>是两者的串联.

在.Net中是否有内置方法可以做到这一点,还是我必须自己编写?

.net c# ienumerable concatenation

183
推荐指数
4
解决办法
10万
查看次数

为什么我可以将1作为短路,而不是int变量i?

为什么第一个和第二个写入工作但不是最后一个?有没有办法我可以允许所有3个并检测它是1,(int)1还是我传入?真的为什么一个允许但最后一个?第二个被允许但不是最后一个真的让我大吃一惊.

演示显示编译错误

using System;
class Program
{
    public static void Write(short v) { }
    static void Main(string[] args)
    {
        Write(1);//ok
        Write((int)1);//ok
        int i=1;
        Write(i);//error!?
    }
}
Run Code Online (Sandbox Code Playgroud)

c# int compiler-errors type-conversion implicit-conversion

147
推荐指数
4
解决办法
5996
查看次数

在.net 4上使用async-await

我现在开始创建一个可以从C#5的async-await功能中获益的应用程序.但我不确定使用哪个版本的VS和async运行时.

看看操作系统受欢迎程度图表,我需要再支持Windows XP三年左右.看起来.net 4.5仅在较新版本的Windows上运行,因此我需要以.net 4.0为目标.开发机器使用Windows 7,因此使用较新版本的VS不是问题.

现在我需要先选择一个编译器来执行此操作:

  • 带有AsyncCTP的VS2010
  • VS2012预览(最后一次到达),将目标设置为.net 4.0
  • Mono(看起来像2.12有async-await,我更喜欢/习惯使用VS而不是MonoDevelop作为IDE)

哪一个代码生成错误较少?看看Jon Skeet的博客,VS2012 Preview使用的是永不代码生成器而不是CTP.

更重要的是使用哪个运行时?

VS2012是否包含可再发行的异步运行时与.net 4一起使用?

通过引用AsyncCTP运行时,我设法通过预览编译代码.但由于CTP具有奇怪的许可条件,这看起来不是一个好的长期解决方案.

或者我应该使用第三方实施?也许单声道有一个?

为了分发库,我更喜欢将dll放在与应用程序相同的目录中,而不是某种安装程序.

如果我的二进制文件在单声道+ Linux/MacOS上没有变化的情况下工作,我也会喜欢它.因此运行时应该与内置的任何单声道(可能是2.12)兼容,或者允许在非Windows操作系统上使用.

c# .net-4.0 async-await c#-5.0 async-ctp

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

为什么有些C#lambda表达式编译为静态方法?

正如您在下面的代码中看到的,我已将Action<>对象声明为变量.

有人请让我知道为什么这个动作方法委托表现得像一个静态方法?

为什么它会true在以下代码中返回?

码:

public static void Main(string[] args)
{
    Action<string> actionMethod = s => { Console.WriteLine("My Name is " + s); };

    Console.WriteLine(actionMethod.Method.IsStatic);

    Console.Read();
}
Run Code Online (Sandbox Code Playgroud)

输出:

示例输出示例

.net c# reflection lambda

121
推荐指数
3
解决办法
8143
查看次数

如何在C中使用/ dev/random或urandom?

我想使用/dev/random/dev/urandom在C.我怎么能这样做?我不知道如何在C中处理它们,如果有人知道请告诉我如何.谢谢.

c linux random

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

存储100万个电话号码

存储100万个电话号码的最有效方式是什么?

显然这是Google的面试问题,请提出您的想法.

algorithm data-structures

71
推荐指数
8
解决办法
4万
查看次数

使用Nullable <value>类型的条件运算符赋值?

EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
    ? null
    : Convert.ToInt32(employeeNumberTextBox.Text),
Run Code Online (Sandbox Code Playgroud)

我经常发现自己想要做这样的事情(EmployeeNumberNullable<int>因为它是在LINQ到SQL的DBML对象,其中列允许NULL值的属性).不幸的是,编译器认为"'null'和'int'之间没有隐式转换",即使这两种类型在对自己的可空int的赋值操作中都是有效的.

由于内联转换需要在.Text字符串上发生(如果它不为空),因此Null合并运算符不是我能看到的选项.

据我所知,唯一的方法是使用if语句和/或分两步进行分配.在这种特殊情况下,我发现非常令人沮丧,因为我想使用对象初始化器语法,这个赋值将在初始化块中...

谁知道更优雅的解决方案?

c# nullable conditional-operator

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

如何在winforms中制作Combobox readonly

我不希望用户能够更改组合框中显示的值.我一直在使用,Enabled = false但它会使文本变灰,所以它不是很易读.我希望它的行为像文本框一样ReadOnly = true,文本正常显示,但用户无法编辑它.

有没有办法实现这个?

.net c# winforms

54
推荐指数
7
解决办法
8万
查看次数