只需恢复总C#NEWB 。
好的,所以:
项目中有一个公共接口,其值如下:
Name3D MyName3D { get; set; }
现在我在另一个位置使用公共密封类,我使用System.Interfacename添加了命名空间/。现在我想设置如下:
private readonly Interfacename m_MyName3D ;
private const string 3DName = ##;
我如何设置它以便##是MyName3D的值。我以前没有做过这样的事情。只是想尝试一下?
如果我能详细了解它的工作原理,我将非常感激。
更新一个
你是说这个吗?
using Interfacename;
public sealed class InfoController : AsyncController
{
private readonly Interfacename m_MyName3D ;
private const string 3DName = ##;
答案 0 :(得分:3)
您无法在运行时为const成员分配任何内容。但是,您可以将3DName设置为只读属性,并将get访问器中继到接口:
private string 3DName { get { return m_MyName3D.MyName3D; } }
但也许我没有得到你想要做的事情,如果是这样,请更清楚地描述它。
编辑:你正在使用两种类型的3DName,Name3D和字符串。如果Name3D没有转换运算符,则需要在整个属性中使用它。
private Name3D 3DName { get { return m_MyName3D.MyName3D; } }
如果你真的需要返回一个字符串,你需要为Name3D编写一个字符串转换运算符:
struct/class Name3D
{
public static implicit operator string(Name3D name)
{
return name.whatever; // this needs to be the data holding member(s) of Name3D
}
}