从C#中的类中删除属性
本文关键字:删除 属性 | 更新日期: 2023-09-27 17:50:07
我有一个类和分配给它的几个属性。
class MyClass
{
[Category("Common")]
[Description("Name")]
[Browsable(true)]
public string Name
{
get { return name;}
set { name = value; }
}
[Category("Common")]
[Description("Contact")]
[Browsable(true)]
public string ContactNo
{
get { return number;}
set { number = value; }
}
}
在这里,当我实例化这个类时,我想在满足特定条件时删除contactNo属性。我该怎么做?
您的方法取决于是否应为表中的所有行隐藏属性(即,是要隐藏整列还是仅隐藏某些单元格中的值(。
如果只想隐藏某些单元格中的值,可以在属性的集合部分添加条件以检查条件并返回null或空字符串。。如果条件需要检查外部值,则可以使用Get方法来接受要检查的适当值。
在UI级别,隐藏整个列实际上取决于您使用的技术。你在这里没有提到——对于基于浏览器的应用程序来说,JQuery可能是最常见的工具。
第一步将创建一个具有每个类都将具有的属性的抽象类。
例如:
public abstract class ClassRoot {
public string Name
{
get; set;
}
}
现在,您将创建具有其他属性的派生类,这些属性可能彼此不同。
例如:
public class Class1 : ClassRoot {
public string ContactNo
{
get; set;
}
}
另一个类可能是这样的:
public class Class2 : ClassRoot {
public string Address
{
get; set;
}
}
现在,根据您的情况,您可以执行以下操作:
if(....)
{
Class1 class1 = new Class1();
} else {
Class2 class2 = new Class2();
}
每个类Class1
或Class2
都具有属性Name
,但也包含它们自己定义的属性。
class MyClass
{
[Category("Common")]
[Description("Name")]
[Browsable(true)]
public string Name
{
get { return name;}
set { name = value; }
}
[Category("Common")]
[Description("Contact")]
[Browsable(true)]
public string ContactNo
{
get { return number;}
set { number = value; }
}
public bool ContactNoVisible
{
//Change the condition
get {return Name != "bttb"; }
}
}
从现在起,只需检查ContactNoVisible是否可以在网格上显示属性。如果你向我展示你的代码如何显示porperty值,那么我也会为这种方式提供帮助。