![](/img/trans.png)
[英]How to create a Javascript class that can be instatiated like a C# class/object and consumed in Vue component
[英]How to create a simple Object with properties in C# like with javascript
我正在使用 Xamarin,我需要一些看起来像这样的东西:
public Colors = new object() {
Blue = Xamaring.Color.FromHex("FFFFFF"),
Red = Xamarin.Color.FromHex("F0F0F0")
}
所以我以后可以做这样的事情:
myObject.Colors.Blue // returns a Xamarin.Color object
但是,当然,这不会编译。 显然,我需要为此创建一个全新的类,这是我真的不想做的,也不认为我应该做的事情。 在 javascript 中,我可以这样做:
this.colors = { blue: Xamarin.Color.FromHex("..."), red: Xamarin... }
有没有可以帮助我快速实现这一目标的 C 语言? 谢谢
你可以创建一个动态对象( https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject%28v=vs.110%29.aspx , https://msdn.microsoft.com/en -us / library / bb397696.aspx )。 但是C#是一种强类型语言......不是像javascript这样的无类型语言。 因此,创建一个新类是在C#中执行此操作的方法。
使用动态对象的示例:
public class Program
{
static void Main(string[] args)
{
var colors = new { Yellow = ConsoleColor.Yellow, Red = ConsoleColor.Red };
Console.WriteLine(colors.Red);
}
}
或者使用ExpandoObject:
public class Program
{
static void Main(string[] args)
{
dynamic colors = new ExpandoObject();
colors.Red = ConsoleColor.Red;
Console.WriteLine(colors.Red);
}
}
或者更多C#OO这样做的方式...... 创建一个类:
public class Program
{
static void Main(string[] args)
{
var colors = new List<Color>
{
new Color{ Color = ConsoleColor.Black, Name = "Black"},
new Color{ Color = ConsoleColor.Red, Name = "Red"},
};
Console.WriteLine(colors[0].Color);
}
}
public class Color
{
public ConsoleColor Color { get; set; }
public String Name { get; set; }
}
我建议使用上一个版本。
有时谷歌是你最好的朋友:
https://msdn.microsoft.com/en-us/library/bb397696.aspx
var Colors = new {
Blue = Xamaring.Color.FromHex("FFFFFF"),
Red = Xamarin.Color.FromHex("F0F0F0")
}
如果您只想从其字符串名称中检索颜色,为什么不使用字典。
public static Dictionary<string,Color> colours;
public static void Main(string[] args)
{
var dictionary = new Dictionary<string,Color>();
dictionary.Add("blue",Xamarin.Color.FromHex("FFFFFF"));
}
我会将颜色视为属于集合的东西,而不是那些具有重要意义的属性。 Colour
是一个概念,特定颜色只是可能在运行时更改的数据。 但是缺少这种区别,你可以做一些事情,比如从别处注入颜色选择是不可能的。
可以添加更复杂的功能,我可能会将颜色名称及其Xamerin数据封装到一个Colour
类中。
如果你真的需要将它称为myObject.Colors.Blue
,那么很难。 你已经把自己描绘成了一个你需要创建一个类的角落(或者至少你应该,我确定会有很多不可取的方法建议替代方案)并且你不必要地编译数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.