c# – 我可以在结构体上创建访问器来自动转换到其他数据类型吗?

前端之家收集整理的这篇文章主要介绍了c# – 我可以在结构体上创建访问器来自动转换到其他数据类型吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以做如下的事情:
struct test
{
   this
   {
      get { /*do something*/ }
      set { /*do something*/ }
   }
}

所以如果有人试图这样做,

test tt = new test();
string asd = tt; // intercept this and then return something else

解决方法

从概念上讲,你在这里做的事情实际上是可以在.NET和C#中进行的,但是你在语法方面咆哮着错误的树.看来这个 implicit conversion operator会是这个解决方案,

例:

struct Foo
{
   public static implicit operator string(Foo value)
   {
      // Return string that represents the given instance.
   }

   public static implicit operator Foo(string value)
   {
      // Return instance of type Foo for given string value.
   }
}

这允许您为自定义类型的对象(/ Foo)分配和返回字符串(或任何其他类型).

var foo = new Foo();
foo = "foobar";
var string = foo; // "foobar"

当然,这两个隐式转换运算符不一定对称,尽管通常是可取的.

注意:还有explicit转换运算符,但我认为你更多的是隐式运算符.

原文链接:https://www.f2er.com/csharp/94534.html

猜你在找的C#相关文章