Tag: 动态编程

矩形内最大的空矩形

我的数学不是很好,所以我很难将公式转换成代码,而且我找不到任何现成的谷歌搜索。 我有一个包含很多小矩形的大矩形……我需要做的就是计算最大的空矩形。 Anyonne可以帮帮我吗? 这就是我提出的……没什么可说的,这是一个很大的失败。 Rect result = new Rect(); for (Double l = 0; l < bigRect.Width; ++l) { for (Double t = 0; t < bigRect.Height; ++t) { Double h = 0; Double w = 0; while ((h <= bigRect.Width) && (w !smallRect.IntersectsWith(largestEmpty)) && ((largestEmpty.Height * largestEmpty.Width) > (result.Height * result.Width))) result = largestEmpty; […]

在C#中实现动态代理的最佳方法是什么?

我需要在C#中创建动态代理。 我希望这个类包装另一个类,并采用它的公共接口,转发对这些函数的调用: class MyRootClass { public virtual void Foo() { Console.Out.WriteLine(“Foo!”); } } interface ISecondaryInterface { void Bar(); } class Wrapper : ISecondaryInterface where T: MyRootClass { public Wrapper(T otherObj) { } public void Bar() { Console.Out.WriteLine(“Bar!”); } } 这是我想要使用它的方式: Wrapper wrappedObj = new Wrapper(new MyRootClass()); wrappedObj.Bar(); wrappedObj.Foo(); 生产: Bar! Foo! 有任何想法吗? 最简单的方法是什么? 最好的方法是什么? 非常感谢。 […]

如何在运行时替换方法实现?

我想拥有属性getter和方法,我可以用自己的自定义属性进行装饰,并根据该属性的存在,用不同的实现替换方法体。 此外,不同的实现需要知道赋予自定义属性的构造函数参数,在该属性中它装饰方法。 这显然可以通过AOP完成,比如PostSharp或LinFu,但是我想知道是否有一种方法可以做到这一点,不涉及构建后的处理步骤,因为添加使项目更加复杂化。