小编Meh*_*ari的帖子

程序员学习如何构建编译器是否有益?

对于不同类型的程序员来说,有很多种.一般来说,程序员学习如何构建编译器是有益的吗?在什么情况下需要编译器编程?

compiler-construction

21
推荐指数
5
解决办法
1410
查看次数

C#:以XML格式存储字节数组

在XML中存储Byte []数组的简单方法是什么(使用C#)?

.net c# xml bytearray

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

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

在C#下使用Int64会对32位处理器造成危险

我在MS文档中读到,在32位Intel计算机上分配64位值不是原子操作; 也就是说,操作不是线程安全的.这意味着如果两个人同时为静态分配值Int64字段则无法预测该字段的最终值.

三部分问题:

  • 这是真的吗?
  • 这是我在现实世界中会担心的吗?
  • 如果我的应用程序是多线程的,我真的需要Int64用锁定代码包围我的所有作业吗?

.net c# thread-safety int64

17
推荐指数
3
解决办法
8573
查看次数

字符串列表中的不区分大小写匹配

我正在尝试解析F#应用程序中的命令行参数.我正在使用参数列表上的模式匹配来完成它.就像是:

let rec parseCmdLnArgs = 
  function
  | [] -> { OutputFile = None ; OtherParam = None }
  | "/out" :: fileName :: rest -> let parsedRest = parseCmdLnArgs rest
                                  { OutputFile = Some(fileName) with parsedRest }
Run Code Online (Sandbox Code Playgroud)

问题是我想让"/out"匹配大小写不敏感,同时保留其他东西的情况.这意味着我无法改变输入并匹配输入的小写版本(这将丢失fileName案例信息).

我考虑了几个解决方案:

  • 诉诸when条款并不理想.
  • 每次匹配一个元组,第一个将是实际参数(我将保存以进行进一步处理并将通配符匹配),第二个将是在此类匹配中使用的小写版本.这看起来比第一次更糟.
  • 使用活动模式但看起来过于冗长.我必须ToLower "/out"在每件事之前重复一些事情.

做这些东西有更好的选择/模式吗?我认为这是一个常见的问题,应该有一个很好的方法来处理它.

string f# case-insensitive pattern-matching match

17
推荐指数
1
解决办法
2966
查看次数

添加默认的SelectListItem

 public IEnumerable<SelectListItem> GetList(int? ID)
 {
      return from s in db.List
             orderby s.Descript
             select new SelectListItem
             {
                 Text = s.Descript,
                 Value = s.ID.ToString(),
                 Selected = (s.ID == ID)
             };
 }
Run Code Online (Sandbox Code Playgroud)

我将上面的内容返回到视图并填充一个DropDownList.我想SelectListItem (0, "Please Select..")在返回到视图之前向上面的linq结果添加一个默认值.这可能吗?

linq asp.net-mvc

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

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

我可以显式调用复制构造函数吗?

我对复制构造函数的机制有点困惑.如我错了请纠正我:

如果一个方法将一个对象的引用作为参数,并且该类定义了一个复制构造器,那么该类使用构造函数来创建自身的副本,并将其传递给函数而不是对原始对象的引用?

此外,人们可以打电话

Object * obj = new Object(&anotherObject);
Run Code Online (Sandbox Code Playgroud)

创建另一个对象的副本?

c++ copy-constructor

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

析构函数应该是线程安全的吗?

我正在浏览遗留代码并找到以下代码段:

MyClass::~MyClass()
{
   EnterCriticalSection(&cs);

//Access Data Members, **NO Global** members are being accessed here


  LeaveCriticalSection(&cs);
}
Run Code Online (Sandbox Code Playgroud)

我想知道它有没有机会保护析构函数?

考虑一个场景:

1. Thread1 - About to execute any of the member function which uses critical section
2. Thread2-  About to execute destructor.
Run Code Online (Sandbox Code Playgroud)

如果执行顺序是1 => 2那么它可能会起作用.但如果订单被撤销怎么办?

这是一个设计问题吗?

c++ multithreading destructor

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

如何强制执行空检查?

我正在开展一个大型项目,即使有1000次自动测试和100%代码覆盖率,我们也会得到一些荒谬的错误.我们得到的大约95%的错误是NullReferenceExceptions.

有没有办法在编译时强制执行空值检查?

除此之外,有没有办法在单元测试中自动执行空值检查而不必自己编写空案例的测试?

c# null static-analysis nullreferenceexception

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