小编Eri*_*ura的帖子

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

为什么结构体内的匿名方法无法访问'this'的实例成员

我有一个如下代码:

struct A
{
    void SomeMethod()
    {
        var items = Enumerable.Range(0, 10).Where(i => i == _field);
    }

    int _field;
}
Run Code Online (Sandbox Code Playgroud)

...然后我得到以下编译器错误:

struct A
{
    void SomeMethod()
    {
        var items = Enumerable.Range(0, 10).Where(i => i == _field);
    }

    int _field;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这里发生了什么.

c#

21
推荐指数
1
解决办法
1115
查看次数

Mongodb在便携式C#应用程序中

我正在开发一个应该是便携式的应用程序,我正在使用mongodb.

便携式我的意思是我的应用程序有一个文件夹,包含所有:dll,exes,mongo文件,mongo数据库.然后使用此文件夹我可以在任何机器上运行我的应用程序.

然后我需要知道:

  • 是否有一些库允许我在应用程序启动时运行mongod进程并在应用程序结束时结束进程?

  • 做这些东西有好的做法吗?

建议是受欢迎的,并提前感谢.

c# mongodb

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

为什么"int"和"sbyte"GetHashCode函数会生成不同的值?

我们有以下代码:

int i = 1;
Console.WriteLine(i.GetHashCode());  // outputs => 1
Run Code Online (Sandbox Code Playgroud)

除了sbyte和short之外,C#中的所有整数类型都是有意义的.那是:

sbyte i = 1;
Console.WriteLine(i.GetHashCode());   //  outputs => 257
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

c# hash

5
推荐指数
1
解决办法
2888
查看次数

2个不同的字符串可以在C#中使用相同的哈希码吗?

可能重复:
hashCode用于什么?这是独特的吗?

我生成了很多字符串,然后我的问题是:

2个不同的字符串可以在C#中使用相同的哈希码吗?

通过哈希码我的意思是:

string s = "Hello";
s.GetHashCode();
Run Code Online (Sandbox Code Playgroud)

我的问题更多的是关于C#遵循生成字符串的算法,也许当所有其他哈希码已经生成或者可能不生成时会发生冲突.有可能有人有这个答案.

c# string

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

MSVSP100D.dll在窗口8中缺少使用opencv 2.4.1

我有以下场景:

我正在尝试使用Visual Studio 2012,在Windows 8中使用opencv 2.4.1.然后,当我尝试运行我的应用程序时,我收到以下消息错误:

在此输入图像描述

我知道有关丢失MSVCP100D.dll的问题之前会在stackoverflow中被问到,但是我发生了一些不同的事情:当我在计算机中查找dll时,我注意到我有一个MSVCP110D.dll,它可能是第一个版本的更高版本.

有人可以回答这里发生的事情.

c++ opencv visual-studio

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

为什么我在迭代时不应该修改集合

我知道.net集合类型(或至少一些集合类型)不允许在迭代时修改集合.

例如,在List类中存在如下代码:

if (this.version != this.list._version)
 ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);
Run Code Online (Sandbox Code Playgroud)

但显然这是设计迭代器类的开发人员的决定,因为我可以提供一些实现IEnumerable,至少在修改底层集合时不抛出任何异常.

然后我有一些问题:

  • 为什么我在迭代时不应修改集合?

  • 可以创建一个支持在迭代时修改的集合,而不会有任何其他问题吗?(注意:第一个答案也可以回答这个问题)

  • 当C#编译器生成Enumerator接口实现时考虑到这样的事情?

.net c# collections ienumerable

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

可以用相同的语言L实现语言L的编译器吗?

我知道编译器使用相同语言实现的许多语言: - C#Roslyn编译器在C#中实现 - F#编译器在F#中实现

现在,我认为可以在C#5.0中实现C#6.0的编译器

然后我的问题是关于该语言的相同版本,即:

can a compiler of a language L be implemented in the same language L ? 
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我听说打字稿编译器是在typescript中实现的,但是没有以前版本的typescript语言.

提前致谢.

compiler-construction programming-languages compilation

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

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

C#元组,建筑 - 解构表现

我一直在编写一些代码风格的代码:

a1 = b1;
a2 = b2;
a3 = b3;
...
an = bn;
Run Code Online (Sandbox Code Playgroud)

突然我意识到,对于我而言,对于我正在编写的上下文,当前算法(...)在以下形式编写其中一些赋值更加美观:

(a1, a2, a3, ..., an) = (b1, b2, b3, ..., bn);
Run Code Online (Sandbox Code Playgroud)

现在,我想知道这种编写代码的方式对性能的影响.我想在这里编译器可以优化元组的构造解构.但也许不是吗?注意,b1,b2,...,bn可以是值或表达式.而且,如果无法完成优化,n的大小将很重要(我认为).

因此,有一个具体的问题:有人可以解释在编写代码的两种方式上的性能差异,并考虑所有可能的细节吗?

提前致谢.

c# programming-languages tuples

0
推荐指数
1
解决办法
148
查看次数

匿名函数:不同的语法奇怪的行为

为什么我们使用 fn 和 NullPointerException 使用 # ??

Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_91-b14

> ((fn [x] (println x) (println x)) "I have a question")
I have a question
I have a question
=> nil

> (#((println %) (println %)) "I have a question")
I have a question
I have a question
NullPointerException   user/eval1155/fn--1156 (form-init5537026255318038171.clj:1)
Run Code Online (Sandbox Code Playgroud)

clojure

0
推荐指数
1
解决办法
55
查看次数