gpt4 book ai didi

c# - 在 C# 中的数据类型之间进行转换

转载 作者:可可西里 更新时间:2023-11-01 08:40:04 26 4
gpt4 key购买 nike

我有(例如)一个 A 类型的对象,我希望能够将其转换为 B 类型(类似于将 int 转换为 float)

数据类型A和B是我自己的。

是否可以定义此转换发生的规则?

示例

int a = 1;
float b = (float)a;
int c = (int)b;

最佳答案

是的,这可以使用 C# 运算符重载。有两个版本explicitimplicit .

这是一个完整的例子:

class Program
{
static void Main(string[] args)
{
A a1 = new A(1);
B b1 = a1;

B b2 = new B(1.1);
A a2 = (A)b2;
}
}

class A
{
public int Foo;

public A(int foo)
{
this.Foo = foo;
}

public static implicit operator B(A a)
{
return new B(a.Foo);
}
}

class B
{
public double Bar;

public B(double bar)
{
this.Bar = bar;
}

public static explicit operator A(B b)
{
return new A((int)b.Bar);
}
}

类型 A 可以隐式转换为类型 B,但类型 B 必须显式转换为类型 A。

关于c# - 在 C# 中的数据类型之间进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2728714/

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