小编And*_*rey的帖子

接口派生自System.Object吗?C#规范说是的,Eric说不,现实说没有

问题很简单,在标题中提出.

C#4.0规范说:(§4.2.2)

对象类类型是所有其他类型的最终基类.C#中的每个类型都直接或间接地从对象类类型派生.

Eric Lippert说:

接口类型(不是类)不是从对象派生的.

现实说:

Type t = typeof(ICloneable).BaseType;
Console.WriteLine(t == null);
Run Code Online (Sandbox Code Playgroud)

真正

那么规格错误还是什么?谁相信?

.net c#

32
推荐指数
2
解决办法
4574
查看次数

为什么fastcall比stdcall慢?

我发现了以下问题:fastcall真的更快吗?

没有给出x86的明确答案所以我决定创建基准.

这是代码:

#include <time.h>

int __fastcall func(int i)
{   
    return i + 5;
}

int _stdcall func2(int i)
{   
    return i + 5;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int iter = 100;
    int x = 0;
    clock_t t = clock();
    for (int j = 0; j <= iter;j++)
        for (int i = 0; i <= 1000000;i++)
            x = func(x & 0xFF);
    printf("%d\n", clock() - t);
    t = clock();
    for (int j = 0; j <= iter;j++) …
Run Code Online (Sandbox Code Playgroud)

c++ optimization

23
推荐指数
4
解决办法
1万
查看次数

将Unicode char转换为ASCII(.NET)中最接近(最相似)的char

如何将不同的Unicode字符转换为最接近的ASCII等效字符?像Ä - > A.我用Google搜索,但没有找到任何合适的解决方案.诀窍Encoding.ASCII.GetBytes("Ä")[0]没有用.(结果是?).

我发现有一个类Encoder具有一个Fallback属性,该属性完全适用于char无法转换的情况,但implements(EncoderReplacementFallback)是愚蠢的并转换为?.

有任何想法吗?

.net unicode encoding ascii

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

为什么DateTime.Parse这么慢?

我很震惊DateTime.Parse.此代码运行大约需要100秒; 如果我使用正则表达式版本需要100毫秒.这里发生了什么?

Stopwatch sw = new Stopwatch();
sw.Start();
var re = new Regex(@"(\d\d)/(\d\d)/(\d\d\d\d) (\d\d):(\d\d):(\d\d)", RegexOptions.Compiled);
for (int i = 0; i < 100000; i++)
{
    //var m = re.Match("08/01/2012 23:10:12");
    DateTime.Parse("08/01/2012 23:10:12", CultureInfo.CreateSpecificCulture("en-US"));
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Run Code Online (Sandbox Code Playgroud)

编辑:马克是对的,移动CultureInfo.CreateSpecificCulture("en-US")外面的循环帮助.之前我没有这样做的原因是我用VS Profiler分析了这段代码,它显示了以下结果:

在此输入图像描述

.net c# datetime

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

是否有表示运算符类型的.NET类?

我想做以下事情:

*OperatorType* o = *OperatorType*.GreaterThan;

int i = 50;

int increment = -1;

int l = 0;

for(i; i o l; i = i + increment)
{
    //code
}
Run Code Online (Sandbox Code Playgroud)

这个概念可以使用eval()在javascript中进行克制...但是这个想法是有一个循环,可以根据运行时设置的值前进或后退.

这可能吗?

谢谢

.net c#

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

是否可以创建没有锁的线程安全集合?

这纯粹只是为了兴趣问题,欢迎任何类型的问题.

那么是否可以在没有任何锁的情况下创建线程安全的集合?通过锁我的意思是任何线程同步机制,包括Mutex,Semaphore,甚至Interlocked,所有这些机制.是否可以在用户级别,而无需调用系统功能?好的,可能实施效果不好,我对理论上的可能性很感兴趣.如果不是最低限度的手段是什么?

编辑:为什么不可变集合不起作用.

这个类Stack包含Add返回另一个Stack的方法.

现在这是程序:

Stack stack = new ...;

ThreadedMethod()
{
   loop
   {
      //Do the loop
      stack = stack.Add(element);
   }
}
Run Code Online (Sandbox Code Playgroud)

这个表达式stack = stack.Add(element)不是原子的,你可以从其他线程覆盖新的堆栈.

谢谢,安德烈

language-agnostic algorithm multithreading

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

为什么创建STL容器动态地被认为是不好的做法?

标题说.

糟糕的样本:

std::vector<Point>* FindPoints()
{
   std::vector<Point>* result = new std::vector<Point>();
   //...
   return result;
}
Run Code Online (Sandbox Code Playgroud)

如果我vector稍后删除它会有什么问题?

我主要用C#编程,所以在C++上下文中这个问题对我来说并不是很清楚.

c++ stl

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

Semaphore.WaitOne/Release vs Monitor.Pulse/Wait

对我来说,它看起来在功能Semaphore.WaitOne/Release上等于Monitor.Wait/Pulse.跳过进程间功能,速度(是的,监控是否管理)其他非功能差异,那么真正的区别是什么呢?

.net multithreading

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

列出<>自己的比较器

我有一个List,其中元素是:

struct element { 
                double priority; 
                int value; 
               }
Run Code Online (Sandbox Code Playgroud)

如何实现我自己的比较器,允许我按优先级排序List?我尝试使用SortredList ...但它不允许douplicated键:(

非常感谢您的帮助!

c# list comparator

5
推荐指数
3
解决办法
4053
查看次数

文档在Solr中的结果集中的位置

我需要知道Solr结果中文档的位置.让我解释一下原因.我们希望在搜索中向用户显示其项目的位置(以便用户可以购买促销并将其移动).现在我查询所有页面,直到找到文档,但它会生成很多对Solr的调用.有没有办法获取元素的id和查询位置?最好通过id列表,以便我可以一次查询.

示例查询:

/search?sort=sort_time%20desc&fq=category_parent_id:2003&rows=15&q=&start=0
Run Code Online (Sandbox Code Playgroud)

样本文件:

{
    sort_time: 1421747930,
    id: 146002852,
    catlevel2: "Volvo",
    catlevel1: "Auto's",
    description: "Volvo XC90",
    score: 6.4758344
}
Run Code Online (Sandbox Code Playgroud)

java lucene tomcat solr

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