小编cor*_*ory的帖子

为什么C#属性如此有限?

我知道它们是编译时,因此它们不能是通用的,必须用常量值初始化.但是:
如果你反映出他们申请的内容,他们为什么不能获得你会得到的信息呢?
为什么他们不能接受lambda表达式,函数或委托?编译器的函数不是常量吗?

如果上面只有一个是真的,属性可能是一个非常强大的声明工具,相反,它们更像是可以通过反射阅读的注释.

这有点像咆哮,但我真的想知道为什么它们看起来像这样的半特征.

这就是我想要做的.它应该是一个API,用于将资源中的值通过给定属性的函数映射到属性应用的属性.请注意,如果Attributes可以知道它们反映的内容,则抽象类不必存在.我发布这个是因为有人想知道我为什么要为属性构造函数赋予函数,也许是因为我想要做的事情已经完成了.

public delegate void PropertyHandler(object parent, PropertyInfo property, object value);

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class FromResourceAttribute : Attribute
{
    private static readonly PropertyHandler m_defaultHandler =  (parent, property, value) => 
                                                                {
                                                                    property.SetValue(parent, value, null);
                                                                };

    public PropertyHandler Handler { get; set; }

    public FromResourceAttribute(PropertyHandler handler)
    {
        Handler = handler;
    }

    public FromResourceAttribute()
    {
        Handler = m_defaultHandler;
    }
}

public abstract class ResourceDependent
{
    public ResourceDependent(ResourceManager resources)
    {
        var resourceDependentProperties = 
            from property …
Run Code Online (Sandbox Code Playgroud)

c# attributes

7
推荐指数
2
解决办法
1562
查看次数

IronPython,导入模块

我按照这里的最佳答案示例到T,用Pyc.py进行编译.

从C#构建Python脚本和调用方法

我得到一个例外 pyScope = pyEngine.ImportModule("MyClass");

no module named MyClass
Run Code Online (Sandbox Code Playgroud)

我相信这是一个错误,因为有时使用Pyc.py进行重新编译会生成一个dll ImportModule识别,但有时它不会.

结论:如下面通过digEmAll所述,以这种方式使用Pyc.py编译模块会产生随机结果.而是手动调用clr.CompileModules.

c# ironpython

3
推荐指数
1
解决办法
2015
查看次数

这是检查Python类型的一个很好的理由吗?

我知道在Python中检查类型很糟糕,你应该永远不会这样做.但我似乎无法找到这个的缺点.

class O(object):         
    def __init__(self, name):
        '''Can only be called in derived classes.'''
        if type(self) is O:
            message = "%(class)s cannot be instantiated, it must be derived."
            raise TypeError, message % { "class" : O }
        self.name = name

    def fn(self):
        '''Must be populated in derived classes.'''
        raise NotImplementedError
Run Code Online (Sandbox Code Playgroud)

现在,如果有人试图实例化O,我从未打算实例化一个类,他们立即知道.

这还是不好的形式吗?

python typechecking

2
推荐指数
2
解决办法
260
查看次数

如何将二维数组旋转到任意程度?

假设我有一个bool [] [],我想将它旋转37度.我知道转型并不总是完美的,那没关系.我已经准备好了很多类似于我的问题的答案,但我发现的唯一解决方案只能解决90度增量的问题.

c# arrays math

0
推荐指数
1
解决办法
2051
查看次数

标签 统计

c# ×3

arrays ×1

attributes ×1

ironpython ×1

math ×1

python ×1

typechecking ×1