小编Dav*_*ten的帖子

C#泛型 - 模仿C++模板专业化

我在C++ Tenmplates上找到了一个很好的链接:

http://www.cplusplus.com/doc/tutorial/templates/

并且在C#中需要类似的东西.我有一个似乎有效的解决方案,但希望其他人知道如何与上述链接相关,特别是专业化部分.

这是我提出的概念证明:

public abstract class Piece
{
    public object Value { get; set; }
}

public class Rook : Piece
{
    public void Capture()
    {
        int i = (int)this.Value;
    }
}

public class Pawn : Piece
{
    public void CaptureEnPassant()
    {
        string s = (string)this.Value;
    }
}

public class PieceFactory<P, T> where P : Piece, new()
{

    P p;

    public PieceFactory(T value)
    {
        p = new P();
        p.Value = value;
    }

    public P GetPiece()
    {
        return p; …
Run Code Online (Sandbox Code Playgroud)

c# generics

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

C++ Unions Internals

我正在尝试学习早期的C++并在国际象棋程序中遇到一些我需要帮助理解的代码.我有一个工会,如:

union b_union {

    Bitboard b;
    struct {
    #if defined (BIGENDIAN)
        uint32_t h;
        uint32_t l;
    #else
        uint32_t l;
        uint32_t h;
    #endif
    } dw;
};
Run Code Online (Sandbox Code Playgroud)

上面的代码属于其他条件.

位板定义为uint64_t.如果我有一个值,假设为0x0025f780,即282578800148862,并且我设置了union.b = 0x0025f780,则union.dw.l更新为16843134,union.dw.h更新为65793.最初l和h开始于3435973836.在内部,发生了什么?我对C++很新.试着在工会内部如何工作时尽力绕过工会.

非常感谢任何见解.

大卫

c++ unions

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

标签 统计

c# ×1

c++ ×1

generics ×1

unions ×1