是否可以从C#中的自定义类中删除属性

时间:2019-04-26 12:47:56

标签: c#

public class abc
{
   public int id{get;set;}
   public string name{get;set;}
}

我想从abc类动态删除属性名称。在C#中可以吗?

2 个答案:

答案 0 :(得分:1)

否,编译后不能更改类定义。你能做的是。列出您要忽略的属性。

,或者您可以创建一个自定义属性。将其添加到属性上,然后获取属性列表,不包括具有该属性的属性

例如

public class abc
{
   public int id{get;set;}
   [IgnoredProperty]
   public string name{get;set;}
}

例如,现在可以循环播放。

foreach (var prop in typeof(abc).GetProperties().Where(x => !Attribute.IsDefined(x,typeof(IgnoredProperty))).ToList())
{

}

这可以是属性Class

public class IgnoredPropertyAttribute : Attribute
{
}

答案 1 :(得分:0)

暂时忽略“动态”,这是您可以使用界面执行的操作:

def steps_to_zero_v1(x):
    x_int = int(x,2)
    steps = 0
    while x_int != 0:
        if x_int % 2 == 0:
            x_int = x_int // 2 
        else:
            x_int = x_int - 1
        steps += 1
    return steps