小编maf*_*afu的帖子

这是检查数组是否包含多个元素的更好方法?

我只需要检查一个数组是否有多个元素.我试着这样做:

if (isset($arr['1']))
Run Code Online (Sandbox Code Playgroud)

另一种传统方式是

if (sizeof($arr)>1)
Run Code Online (Sandbox Code Playgroud)

哪两个更好?在这种情况下,我应该如何判断两种替代方法?是否有任何性能检查仪可以测量哪个更好?

php arrays

177
推荐指数
6
解决办法
24万
查看次数

如何从枚举中选择随机值?

给定C#中的任意枚举,如何选择随机值?

(我没有在SO上找到这个非常基本的问题.我会在一分钟内发布我的答案作为参考,但是请随时发表你自己的答案.)

c# random enums

160
推荐指数
5
解决办法
9万
查看次数

为什么代码在线程之间改变共享变量显然不会受到竞争条件的影响?

我正在使用Cygwin GCC并运行此代码:

#include <iostream>
#include <thread>
#include <vector>
using namespace std;

unsigned u = 0;

void foo()
{
    u++;
}

int main()
{
    vector<thread> threads;
    for(int i = 0; i < 1000; i++) {
        threads.push_back (thread (foo));
    }
    for (auto& t : threads) t.join();

    cout << u << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

用线编译:g++ -Wall -fexceptions -g -std=c++14 -c main.cpp -o main.o.

它打印1000,这是正确的.但是,由于线程覆盖了先前增加的值,我预计数量会减少.为什么这段代码不会受到相互访问的影响?

我的测试机器有4个核心,我对我所知道的程序没有任何限制.

当用foo更复杂的东西替换共享的内容时,问题仍然存在,例如

if (u % 3 == 0) {
    u += 4;
} else …
Run Code Online (Sandbox Code Playgroud)

c++ race-condition

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

如何检查类型是否提供无参数构造函数?

我想检查运行时已知的类型是否提供无参数构造函数.这Type堂课并没有带来任何好处,所以我假设我必须使用反思?

.net c# reflection constructor types

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

目录和文件夹之间有什么区别?

大多数人可互换地使用术语"文件夹"和"目录".从程序员的角度来看,是否存在差异,如果是,那又是什么?它取决于操作系统,还是存在广泛的普遍共识?至少表明存在差异.

filesystems directory shell terminology

85
推荐指数
5
解决办法
4万
查看次数

泛型类的静态成员是否与特定实例绑定?

这更像是一个文档,而不是一个真实的问题.这似乎还没有在SO上得到解决(除非我错过了),所以这里有:

想象一下包含静态成员的泛型类:

class Foo<T> {
    public static int member;
}
Run Code Online (Sandbox Code Playgroud)

是否有每个特定类的成员的新实例,或者所有Foo类类只有一个实例?

可以通过以下代码轻松验证:

Foo<int>.member = 1;
Foo<string>.member = 2;
Console.WriteLine (Foo<int>.member);
Run Code Online (Sandbox Code Playgroud)

结果是什么,这种行为记录在哪里?

.net c# generics static

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

+ = new EventHandler(Method)vs + = Method

可能重复:
C#:'+ = anEvent'和'+ = new EventHandler(anEvent)'之间的区别

订阅活动有两种基本方式:

SomeEvent += new EventHandler<ArgType> (MyHandlerMethod);
SomeEvent += MyHandlerMethod;
Run Code Online (Sandbox Code Playgroud)

有什么区别,什么时候我应该选择一个而不是另一个?

编辑:如果它是相同的,那么为什么VS默认为长版本,使代码混乱?这对我来说毫无意义.

c# events

73
推荐指数
4
解决办法
5万
查看次数

CallContext与ThreadStatic

CallContext和ThreadStatic有什么区别?

我知道在ASP.NET环境中,存储在CallContext中的数据可以在整个请求中持久存在,直到它结束,而ThreadStatic可能会或可能不会工作,因为请求可能会切换线程.我还了解到HttpContext是使用CallContext在内部存储的.

在常规应用程序中,它们似乎都在同一个线程调用中持久存在.什么时候不是这样的?


编辑:在评论中我了解到调用上下文是线程静态存储的抽象.ASP.NET框架显式地将数据从一个线程移动到下一个处理一个请求的线程.其他想要提供线程敏捷性的框架可以对上下文存储执行相同的操作.

c# asp.net

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

如何生成.NET 4 GUID?

我知道这里有很多问题以及雷蒙德的优秀(通常)帖子.但是,由于创建GUID的算法明显改变,我发现很难掌握任何最新信息.在MSDN似乎试图提供尽可能少的信息成为可能.

有关如何在.NET 4中生成GUID的已知信息?改变了什么,它如何影响安全性("随机性")和完整性("唯一性")?

我感兴趣的一个特定方面:在v1中,由于涉及时间戳和计数器,似乎几乎不可能在单个机器上再次生成相同的GUID.在v4中,情况不再如此(我被告知),因此在一台机器上获得相同GUID的机会增加了

.net guid .net-4.0

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

如何运行静态构造函数?

我想在不创建实例的情况下执行类的静态构造函数(即我想"加载"类).我怎么做?

加分问题:.NET 4和旧版本之间有什么区别吗?

编辑:

  • 这个班不是静态的.
  • 我想在创建实例之前运行它,因为它需要一段时间才能运行,我想在第一次访问时避免这种延迟.
  • 静态ctor初始化private static readonly字段因此不能在方法中运行.

.net c# static-constructor

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