c# - 如何在不使用 new 的情况下直接赋值?

标签 c# assign

<分区>

我想在 C# 中做这样的事情:

Foo test = "string";

现在对象应该被初始化了。我怎样才能做到这一点?我无法让它工作,但我知道这是可能的。

最佳答案

您正在寻找隐式转换运算符。

public class Foo
{
    public string Bar { get; set; }

    public static implicit operator Foo(string s)
    {
        return new Foo() { Bar = s };
    }
}

然后你可以这样做:

Foo f = "asdf";
Console.WriteLine(f.Bar); // yields => "asdf";

关于c# - 如何在不使用 new 的情况下直接赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23789398/

相关文章:

c# - 当第二个线程都调用 WaitOne() 并由 AutoResetEvent 释放时,为什么第二个线程在第一个线程之前被释放?

ios - Xcode 中用于检查功能是否保留的工具?

java - 将 java 对象文件值分配给 jsp 变量

c# - 计算带锁和不带锁的线程 (c#)

javascript - 如何用变量替换 javascript yahoo 天气 api 调用属性

javascript - AngularJS:从 ng-repeat 动态分配 Controller

javascript - JS 代理和解构赋值

c# - 绑定(bind)到 DataTable 时更改 DataGrid 上的空值外观

c# - 使用 Entity Framework 进行缓存和延迟加载

C# keyhook 问题