用整数引用c#的封送结构

本文关键字:结构 整数 引用 | 更新日期: 2023-09-27 18:10:04

嗨,我正在尝试创建和编组以下结构从c#到c++,并维护链接的引用。我不确定这个结构应该如何在c#中定义?在c++中,结构必须如下所示,并保留const引用:

// C++
struct {
        int   a;       // my value
  const int&  b = a;   // my reference to a
}

有人知道这是可能的吗?

谢谢。

编辑:

这更能代表我想要完成的事情,正如@Hans指出的那样,它不是合法的c++,但也许有人可以建议一个更好的路径?system_t在c++或c#中生成,并传递给c++。我最好的猜测是:(如果这是一个好的设计模式)是初始化c++中system_t构造函数中的所有引用。至于c#的封送处理,它会变得很复杂。

struct system_t
{
  float    sysSampleRate = 112500.0f;            // Sample rate from receivers.
                                                 // Illegal statement @Hans
  struct tvg_t  // tvg_t is passed to tvg processor 
  {
          float    tvgLinearGain;
    const float&   tvgSampleRate = sysSampleRate;   // Get the rate from system.
                                                    // Illegal statement @Hans
  } tvg;   // Nested tvg_t in system_t.
  //... Many other structures and variables ..//
};

我想找到正确的设计模式,而不是放弃这个,去一个平面结构或传递system_t到每个模块。

用整数引用c#的封送结构

应该可以:

[StructLayout(LayoutKind.Sequential)]
public struct MyCStruct {
  public int a;
  public IntPtr b;
}