小编Ken*_*Kin的帖子

为什么未初始化的局部变量始终具有相同的初始值?

在这段代码,为什么在我的测试结果总是1,23

#include <stdio.h>

void test() {
    int a;
    a++;

    printf("%d",a);
}

int main(int argc, char *argv[]) {
    test();
    test();
    test();
}
Run Code Online (Sandbox Code Playgroud)

我认为变量test()是静态的,不是吗?为什么?

c static local-variables

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

Linq 按唯一值对对象进行分组并创建两个列表

我有一个包含属性 Number 的对象数组。我需要按值对它们进行分组,即对象包含这些样本值:

1 2 3 3 3 4 5 6 6 6 7 7
Run Code Online (Sandbox Code Playgroud)

我必须像这样对它们进行分组:

listOfUniqe = {1,2,4,5}
listOfDuplicates1 = {3,3,3}
listOfDuplicates2 = {6,6,6}
listOfDuplicates3 = {7,7}
...
Run Code Online (Sandbox Code Playgroud)

我尝试使用不同的,与First(). 但这使我第一次出现并删除重复项。如果对象有重复项,我也想删除第一次出现的对象并将它们移动到另一个列表。

List<Reports> distinct = new List<Reports>;
distinct = ArrayOfObjects.GroupBy(p => p.Number).Select(g => g.First()).ToList();
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能做到这一点?

c# linq

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

它是唯一一种指向无法访问的标签的可访问goto吗?

灵感来自问题

在我提出这个问题之前,我读过:

问题的挑战是

编写一个程序,该程序具有可访问的goto语句,但相应的标记语句无法访问 - Eric Lippert

一个可行的答案就像

    // the 3 lines are not important but declare variable for afterwards use
    var whateverException=new Exception("whatever exception");
    var whateverAction=default(Action);
    whateverAction=() => whateverAction();
Run Code Online (Sandbox Code Playgroud)
    try {
        goto whateverLabel; // (1) the goto is reachable
    }
    finally {
        throw whateverException; // (3) because finally hijacks
    }

whateverLabel: // (2) but the label is not really reached
    whateverAction();
Run Code Online (Sandbox Code Playgroud)

我想知道在一个单线程程序中,它是唯一一个指向无法访问标签的可达goto吗?以下代码也被认为是可行的答案吗?

here:
    int d=0, n=1/d;
    goto here;
Run Code Online (Sandbox Code Playgroud)

c# unreachable-code

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

c中的结构,其成员也是结构

我有以下内容structs:

typedef struct stack {
    void* ss_sp;
    size_t ss_size;
    // ...
} stack_t; 

typedef struct ucontext {
    ucontext_t* uc_link;
    stack_t uc_stack;
    // ...
} ucontext_t;

typedef struct mythread_type {
    ucontext_t context;
    int ID;
    int status;
} mythread_t; 
Run Code Online (Sandbox Code Playgroud)

现在我有一个数组如下:

mythread_t mythreads[100];
Run Code Online (Sandbox Code Playgroud)

我想避免使用

mythreads[0].context.uc_stack.ss_size 
Run Code Online (Sandbox Code Playgroud)

出于可读性的原因.

现在我想知道以下两个代码块是否相同:

我想要的是mythreads[0]堆栈的上下文分配1024个字节.

c struct lvalue

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

在c#中,如何在给出List <Object>时确定对象的类型?

我的方法看起来像:

Boolean actions(List<Object> input)
{
    if (input.element is String)
    {...}
    else if (input.element is PSObject)
    {...}
}
Run Code Online (Sandbox Code Playgroud)

我试过了 input.getType().GetGenericArguments()[0] == new PSObject().GetType())

但是input.getType().GetGenericArguments()[0]说它是对象类型......

c# types list covariance contravariance

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

在简单的对象创建时崩溃

我有这段代码:

    class SomeClass {
1       String PROXY="localhost:8080";
2       Proxy proxy=new Proxy();
3       proxy.setHttpProxy(PROXY);
        // ...
Run Code Online (Sandbox Code Playgroud)

在第3行,编译器告诉我该对象proxy不存在.

当我在上面创建一行时怎么会不存在?


编辑:

我认为这没有用,但这是编译器错误(它指向第3行中的括号):

类,结构或接口成员声明中的标记')'无效

此外,ReSharper突出显示proxy(第3行)未找到的对象.

c#

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

匿名类型 LinQ - 检查空值 - 异常

我已经用谷歌搜索了一段时间,并为我的问题尝试了各种类型的组合。

我想用我的匿名类型的结果填充我的 Gridview。“循环”中的第一次运行很顺利,因为所有变量都有一些实际值。

但是第二次填充第 2 行时抛出:未将对象引用设置为对象的实例。

这是因为我可能将匿​​名对象分配给 null 并且 gridview 无法处理它。我试图找出一些解决方案,但还没有解决。

是否有正确理解 LinQ 的秘密通道?

这是我现在的代码:

var filteredlist = from info in list // List from external
                   select new
                   {
                       Question = info.QuestionText ?? "Test",
                       CorrectAnswer = info.CorrectAnswer.OptionText ?? "Test",
                       WrongAnswer1 = info.WrongAnswer1.OptionText ?? "Test",
                       WrongAnswer2 = info.WrongAnswer2.OptionText ?? "Test", //Throws Error
                       WrongAnswer3 = info.WrongAnswer3.OptionText ?? "Test" //Throws Error
                   };

GridView1.DataSource = filteredlist;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

这是我试图让它发挥作用的尝试。

var filteredlist = from info in list // list from external
                   select new
                   {
                       Question …
Run Code Online (Sandbox Code Playgroud)

c# linq null anonymous

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

泛型列表<List <T >>

如果我有List<T>从类型获得一些列表MyClass,例如List<List<MyClass>>,MyClass是来自的父类MyClassB.为什么我不能做以下事情?

List<List<MyClass>> allLists = new List<List<MyClass>>();

List<MyClassB> myList = new List<MyClassB>();
myList.Add(new MyClassB());

//And now the point which dont work
allLists.Add(myList);
Run Code Online (Sandbox Code Playgroud)

如果我实现一个方法,我可以说SomeClass<T> ... where T : MyClass,我的列表问题有类似的东西吗?

这样我就可以将任何子类的列表添加到我的第一级列表中?

c# generics

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

真随机不是真正的随机我真的很困惑

好吧,我测试了下面的方式.

生成x时间之间的随机数0~x,然后检查未生成的那些.

我认为它会非常接近100%.我的意思是0~x生成之间的所有数字.

但结果令人震惊.大约36%的数字丢失了.

我的随机功能不是真的随机吗?

在我的随机课程下面:

private static Random seedGenerator = new Random();

private static ThreadLocal<Random> random = 
    new ThreadLocal<Random>(SeededRandomFactory);

private static Random SeededRandomFactory()
{
    lock (seedGenerator)
        return new Random(seedGenerator.Next());
}

public static int GenerateRandomValueMin(int irRandValRange, int irMinValue)
{
    return random.Value.Next(irMinValue, irMinValue + irRandValRange);
}
Run Code Online (Sandbox Code Playgroud)

以下结果如下:

Between 0-10, missing numbers count: 4, percent: 40%
Between 0-100, missing numbers count: 36, percent: 36%
Between 0-1000, missing numbers count: 369, percent: 36,9% …

c# random

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

为什么这个byte []不等于我的另一个字节[]具有相同的值?

public static readonly byte[] TestArray=
    new byte[] { 0x75, 0xa5, 0x15, 0x19, 0xa0, 0x2e, 0xd9, 0x37, 0xb0, 0x4d };

public bool TestFunction() 
{
    MemoryStream s=new MemoryStream(
        new byte[] { 0x75, 0xa5, 0x15, 0x19, 0xa0, 0x2e, 0xd9, 0x37, 0xb0, 0x4d }
        );

    byte[] test=s.ToArray();
    return (test==TestArray);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的简单代码.数组中的字节值相等.但我TestFunction()总是回归虚假.到底是怎么回事?

c# arrays compare bytearray

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