小编Bru*_*nez的帖子

如何在c#xml docs中引用枚举常量

我想记录枚举类型字段的默认值:

/// <summary>
/// The default value is <see cref="Orientation.Horizontal" />.
/// </summary>
public Orientation BoxOrientation;
Run Code Online (Sandbox Code Playgroud)

编译器警告它无法解析引用.前缀F:或M:使编译器静音,但E:也可以,所以我不确定哪个前缀是正确的.

c# documentation enums xml-documentation

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

将对象同时转换为两个接口,以调用泛型方法

我想调用一个约束输入类型T的泛型方法来实现两个接口:

interface IA { }
interface IB { }
void foo<T>(T t) where T : IA, IB { }
Run Code Online (Sandbox Code Playgroud)

我怎样才能修复最后一行

void bar(object obj)
{
    if (obj is IA && obj is IB)
    {
        foo((IA && IB)obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

反思可能允许拨打电话,但我希望保持在语言范围内.

.net c# generics casting interface

13
推荐指数
2
解决办法
1757
查看次数

如何在Silverlight中打破未处理的异常

在控制台.Net应用程序中,对于没有匹配catch块的异常,调试器在抛出点(堆栈展开之前)中断.似乎Silverlight在try catch中运行所有用户代码,因此调试器永远不会中断.而是引发Application.UnhandledException,但是在捕获异常并展开堆栈之后.要在未处理的异常被抛出而没有被捕获时中断,我必须启用第一次机会异常中断,这也会停止程序处理异常.

有没有办法删除Silverlight try块,以便异常直接进入调试器?

.net silverlight exception-handling

11
推荐指数
2
解决办法
5521
查看次数

将C99代码转换为C89

如何将c99源代码自动转换为c89?我想用Visual C++编译c99库,但MSVC只支持c89.许多更改只是语法,例如struct initializers,您可以自动编写"de-c99"代码的工具.这个预处理器是否存在?

c c99 visual-c++

10
推荐指数
2
解决办法
2875
查看次数

std :: regex线程安全吗?

静态boost :: wregex实例相关的是线程安全的吗?但对于标准版本.我可以从具有相同正则表达式对象的多个线程调用regex_search吗?

c++ regex std thread-safety

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

在Windows下更改默认套接字缓冲区大小

我无法更改的应用程序是丢弃一些传入的UDP数据包.我怀疑接收缓冲区溢出.是否有注册表设置使默认缓冲区大于8KB?

sockets windows registry udp

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

跳回矢量化余数循环的一些迭代

我手动矢量化循环并一次处理4个项目.项目总数可能不是4的倍数,所以我在主循环结束时留下了一些项目.我认为如果计数大于4并且重做某些项目是安全的,我可以使用相同的主矢量化循环执行剩余项目.例如,如果我需要处理10个项目,我可以在三次迭代中处理0123,4567,6789.我找不到任何对这种技术的引用.它是愚蠢但我不明白怎么样?

#include <stdint.h>
#include <stddef.h>

void inc(int32_t const* __restrict in, int32_t* out, size_t count)
{
    if (count < 4)
    {
        for (size_t i = 0; i < count; ++i)
            out[i] = in[i] + 42;
    }
    else
    {
        typedef int32_t v4i __attribute__ ((vector_size (16), aligned(4)));
        for (size_t i = 0;;)
        {
            for (; i + 4 <= count; i += 4)
            {
                (v4i&)out[i] = (v4i&)in[i] + 42;
            }
            if (i == count)
                break;
            i = count - 4;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

c performance x86 assembly simd

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

多态代表

C#chokes on

delegate void Bar<T>(T t);

void foo(Bar bar)
{
    bar.Invoke("hello");
    bar.Invoke(42);
}
Run Code Online (Sandbox Code Playgroud)

解决方法是使用接口

interface Bar
{
    void Invoke<T>(T t);
}
Run Code Online (Sandbox Code Playgroud)

但现在我需要不遗余力地定义接口的实现.我可以用委托和简单的方法实现同样的目的吗?

c# generics delegates interface

5
推荐指数
2
解决办法
2506
查看次数

IDbSetExtensions.AddOrUpdate和关系

IDbSetExtensions.AddOrUpdate旨在帮助编写无论数据库为空还是已填充的代码.但链接对象需要不同的代码.当数据库为空时,对象还没有ID,您可以通过分配导航属性来链接它们.但是,当对象已存在时,导航属性不起作用,您需要直接设置外键. 在两种情况下,导航属性都适用于代理,但代价是放弃POCO. 编辑:实际上,当两个实体都是旧的时,代理不起作用.

当EF尝试将CountryID设置为0时,此示例在第二个SaveChanges调用中崩溃:

public class Country
{
    public virtual int ID { get; set; }
    public virtual string Name { get; set; }
}

public class Person
{
    public virtual int ID { get; set; }
    public virtual string Name { get; set; }

    public virtual int CountryID { get; set; }
    public virtual Country Country { get; set; }
}

public class Context : DbContext
{
    public DbSet<Person> Person { get; set; }
    public DbSet<Country> Country { get; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

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

/OPT:REF 删除的函数中引用的未解析外部符号

我有一个实际上并没有调用的函数 bar(),它调用了未实现的 foo():

void foo();
void bar()
{
    foo();
}
int main()
{

}
Run Code Online (Sandbox Code Playgroud)

如果我将每个函数打包在一个单独的部分/COMDAT 中并要求链接器删除未使用的部分/COMDAT,我就可以让 gcc 来编译程序

gcc -ffunction-sections -Xlinker --gc-sections LinkerFunctions.cpp
Run Code Online (Sandbox Code Playgroud)

但等效于 Visual C++ 2019

cl /Gy LinkerFunctions.cpp /link /OPT:REF
Run Code Online (Sandbox Code Playgroud)

吠叫

error LNK2019: unresolved external symbol "void __cdecl foo(void)" (?foo@@YAXXZ) referenced in function "void __cdecl bar(void)" (?bar@@YAXXZ)
Run Code Online (Sandbox Code Playgroud)

如何让 msvc 编译程序?

visual-c++

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