gpt4 book ai didi

c# - C# 中 C++ 结构化绑定(bind)的模拟

转载 作者:行者123 更新时间:2023-12-05 07:21:08 30 4
gpt4 key购买 nike

在 C++17 中,有一个非常漂亮的功能,称为结构化绑定(bind)。我很难找到它的 C# 模拟。具体来说,我的代码类似于:

public struct A
{
public int up;
public int down;
public int left;
public int right;
};
public abstract A foo();
A a = foo();
int up=a.up;
int down=a.down;
int left=a.left;
int right=a.right;

我想以一种不太冗长的方式初始化这些变量。

提前谢谢你。

最佳答案

你可以这样做:

using System;

public struct A
{
public int up;
public int down;
public int left;
public int right;

public void Deconstruct(out int up, out int down, out int left, out int right)
{
up = this.up;
down = this.down;
left = this.left;
right = this.right;
}
};

public static class M {
public static void main() {
var (up,down,left,right) = new A();
}
}

或在 C# 10 中:

using System;

record struct A(int up, int down, int left, int right);

public static class M {
public static void main() {
var (up,down,left,right) = new A();
}
}

关于c# - C# 中 C++ 结构化绑定(bind)的模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57066817/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com