C# 在C中为模型的属性定义默认字符串类型#
我有这个型号C# 在C中为模型的属性定义默认字符串类型#,c#,entity-framework,model-view-controller,types,model,C#,Entity Framework,Model View Controller,Types,Model,我有这个型号 公共类AppInfo { [必需(ErrorMessage=“Campo obrigatório”)] 公共字符串nick{get;set;} [必需(ErrorMessage=“Campo obrigatório”)] 公共字符串版本{get;set;} 公共字符串说明{get;set;} } 我想为nick属性设置默认字符串类型,就像在typescript中一样 const plant:“树”|“花” 在c#中有这样做的方法吗 若不手动设置,默认文本将为属性值 如果不手动设
公共类AppInfo
{
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串nick{get;set;}
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串版本{get;set;}
公共字符串说明{get;set;}
}
我想为nick
属性设置默认字符串类型,就像在typescript中一样
const plant:“树”|“花”
在c#中有这样做的方法吗
若不手动设置,默认文本将为属性值
如果不手动设置,默认文本将是C#中属性的值,没有“速记”方式来完成所描述的内容,就像在TypeScript中一样。为此,您必须创建一个自定义类。如果提供的字符串不在“允许”列表中,它将有1个只读字符串属性,并在构造函数中引发异常
公共类AppInfo
{
[必需(ErrorMessage=“Campo obrigatório”)]
公共植物nick{get;set;}
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串版本{get;set;}
公共字符串说明{get;set;}
}
公营工厂{
私有只读字符串[]AllowedNames={“树”,“花”};
公共字符串名称{get;}
植物(弦植物){
if(false==AllowedNames.Contains(工厂)){
抛出新的ArgumentException($“{plant}是不允许的。”);
}
这个名称=植物;
}
}
在AppInfo
中,您将使用nick.Name
访问该属性
或者,您可以直接将此逻辑添加到AppInfo
构造函数中。虽然,如果您打算在其他实体中使用此逻辑,创建自定义类会更好。在C#中,没有“速记”方式来完成您所描述的内容,如在TypeScript中。为此,您必须创建一个自定义类。如果提供的字符串不在“允许”列表中,它将有1个只读字符串属性,并在构造函数中引发异常
public class AppInfo
{
private string _nick;
[Required(ErrorMessage = "Campo obrigatório")]
public string nick { get{ return _nick; } set { if(value != "Tree" && value != "Flower" ){ throw new Exception("Wrong text, fool"); } this._nick = value; } }
[Required(ErrorMessage = "Campo obrigatório")]
public string version { get; set; }
public string description { get; set; }
}
公共类AppInfo
{
[必需(ErrorMessage=“Campo obrigatório”)]
公共植物nick{get;set;}
[必需(ErrorMessage=“Campo obrigatório”)]
公共字符串版本{get;set;}
公共字符串说明{get;set;}
}
公营工厂{
私有只读字符串[]AllowedNames={“树”,“花”};
公共字符串名称{get;}
植物(弦植物){
if(false==AllowedNames.Contains(工厂)){
抛出新的ArgumentException($“{plant}是不允许的。”);
}
这个名称=植物;
}
}
在AppInfo
中,您将使用nick.Name
访问该属性
或者,您可以直接将此逻辑添加到AppInfo
构造函数中。尽管如此,如果您打算在其他实体中使用此逻辑,创建自定义类会更好
public class AppInfo
{
private string _nick;
[Required(ErrorMessage = "Campo obrigatório")]
public string nick { get{ return _nick; } set { if(value != "Tree" && value != "Flower" ){ throw new Exception("Wrong text, fool"); } this._nick = value; } }
[Required(ErrorMessage = "Campo obrigatório")]
public string version { get; set; }
public string description { get; set; }
}
我更新了一点。正在验证属性集中的值。
如果您试图设置obj.nick=“notFlower”,这将抛出错误
我更新了一点。正在验证属性集中的值。
如果您试图设置obj.nick=“notFlower”,这将引发错误,但我可以说,该属性只能接收两种类型的字符串,如果接收到不在类型模式中的字符串,它会引发异常?示例:公共字符串nick{get;set;}=“默认文本”|“另一个文本”;但是我可以说这个属性只能接收两种类型的字符串,如果接收一个不在类型模式中的字符串,它会抛出一个异常?示例:公共字符串nick{get;set;}=“默认文本”|“另一个文本”;