Tag: C#的

最佳持续集成设置为独奏开发者(.NET)

我正在寻找一个轻量级,易于安装的CI服务器,我可以与我的笔记本电脑一起在Visual Studio&Resharper上运行。 我很明显地看着像CruiseControl,TeamCity等所有的大牌,但最大的考虑是设置简单,内存占用较小。 编辑:我也想在2/3以外的其他解决scheme的build议… 编辑:我即将接受一个答案,如果没有其他人有什么补充?

GCC中的函数静态variables是否是线程安全的?

在示例代码中 void foo() { static Bar b; … } 使用GCC编译是保证b将被创build和线程安全的方式初始化? 在gcc的手册页中,find了-fno-threadsafe-statics命令行选项: 不要发出额外的代码来使用C ++ ABI中指定的用于本地静态线程安全初始化的例程。 您可以使用此选项在不需要线程安全的代码中稍微减less代码大小。 这是否意味着,本地静态在GCC默认情况下是线程安全的? 那么没有理由明确地捍卫,例如与pthread_mutex_lock/unlock ? 如何编写可移植代码 – 如何检查编译器是否会添加其警卫? 还是closuresGCC的这个function更好?

Linq到SQLdate时间值是本地(Kind = Unspecified) – 我如何使UTC?

是不是有一种(简单的)方法来告诉Linq To SQL类,一个特定的DateTime属性应该被认为是UTC(也就是说DateTimetypes的Kind属性默认是Utc),还是有一个“干净的”解决方法? 我的应用程序服务器上的时区与SQL 2005 Server不同(不能更改任何),而且没有任何是UTC。 当我将DateTimetypes的属性保存到dB时,我使用UTC值(因此db列中的值为UTC),但是当我读取值(使用Linq To SQL)时,我得到DateTime的.Kind属性价值是“未指定”。 问题是,当我“转换”到UTC是4个小时。 这也意味着当它被序列化的时候,它会在客户端结束,并且有一个4小时的错误偏移量(因为它是使用UTC序列化的)。

空string作为特例?

我读了Jon Skeet的测验,我想知道为什么我的第二个样本不会在第一个样本中工作。 为什么这是true : object x = new string("".ToArray()); object y = new string("".ToArray()); Console.WriteLine(x == y); //true 但是这个不是: var k="k"; //string.intern(k); // doesn't help object x = new string(k.ToArray()); object y = new string(k.ToArray()); Console.WriteLine(x == y); //false 我在vs2010中使用了fw 4.5。 幸运的是我也安装了vs2005,结果相同:

C ++中的运算符是什么?

我倒在这个页面上,作者谈到运营商的标准化“” : C ++标准委员会对标准化operator ""是[…] 他/她在说什么? 我找不到任何有关这方面的信息,我不明白它可能暗示什么(常量string的重载或更概念的东西,不影响语言的最终使用)?

C ++ 17中新的基于范围的for循环如何帮助Ranges TS?

委员会改变了基于范围的循环: C ++ 11: { auto && __range = range_expression ; for (auto __begin = begin_expr, __end = end_expr; __begin != __end; ++__begin) { range_declaration = *__begin; loop_statement } } 到C ++ 17: { auto && __range = range_expression ; auto __begin = begin_expr ; auto __end = end_expr ; for ( ; __begin != […]

将脚本function添加到.NET应用程序

我有一个用C#编写的小游戏。 它使用数据库作为后端。 这是一个交易卡游戏 ,我想实现卡的function作为一个脚本。 我的意思是我基​​本上有一个卡类实现的接口ICard ( public class Card056 : ICard ),它包含了被游戏调用的函数。 现在,为了使事物可维护/可修改,我希望将每张卡片的类作为数据库中的源代码,并在首次使用时进行基本编译。 所以,当我不得不添加/更换一张卡片时,我只是把它添加到数据库中,并告诉我的应用程序刷新,而不需要任何程序集的部署(特别是因为我们会谈论每张卡片1个程序集,这意味着数百个程序集) 。 那可能吗? 从源文件注册一个类,然后实例化它等 ICard Cards[current] = new MyGame.CardLibrary.Card056(); Cards[current].OnEnterPlay(ref currentGameState); 这个语言是C#,但是如果可以用任何.NET语言编写脚本,那么额外的奖励也是可以的。

在C ++中何时非法上传?

我非常肯定我理解了向上转换和向下转换之间的一般区别,尤其是在C ++中。 我明白,我们不能总是downcast,因为将基类指针投射到派生类指针会假定指向的基类对象具有派生类的所有成员。 在这个学期的初期,我的教授告诉全class学生,在C ++中有时候也是非法的,但是我似乎错过了在笔记里为什么不记得什么时候发生的事情。 任何人都可以告诉我什么时候在C ++中使用upcast是非法的?

是`x = std :: move(x)`undefined?

令x是以前已经初始化的某种types的variables。 是以下行: x = std::move(x) 未定义? 标准在哪里呢?它是怎么说的?

在.NET中是否可以使用非阻塞的单线程asynchronousWeb服务器(如Node.js)?

我在看这个问题 ,寻找一种在.NET中创build一个基于事件的单线程非阻塞asynchronousWeb服务器的方法。 首先, 这个答案看起来很有希望,声称代码的主体在一个线程中运行。 不过,我用C#testing了这个: using System; using System.IO; using System.Threading; class Program { static void Main() { Console.WriteLine(Thread.CurrentThread.ManagedThreadId); var sc = new SynchronizationContext(); SynchronizationContext.SetSynchronizationContext(sc); { var path = Environment.ExpandEnvironmentVariables( @"%SystemRoot%\Notepad.exe"); var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 1024 * 4, true); var bytes = new byte[1024]; fs.BeginRead(bytes, 0, bytes.Length, ar => { sc.Post(dummy […]