定义以下C#接口:
public interface IShape
{
int NumberOfLineSegments {get;}
int Area {get;}
}
Run Code Online (Sandbox Code Playgroud)
接下来,我想定义几个矩形类:Trapezoid,square等.所有这些类的Area()属性都不同,但NumberOfLineSegments()总是返回4.因此,我想要一个名为Rectangle(或IRectangle)的'临时'类或接口,它看起来像:
public Rectangle : IShape
{
public int NumberOfLineSegments{get{return 4;}}
}
Run Code Online (Sandbox Code Playgroud)
我希望Rectangle只实现NumberOfLineSegment(),并将其留给派生类来实现其余的:
public Square : Rectangle
{
public int Area() {get{return length*height;}
}
Run Code Online (Sandbox Code Playgroud)
但是,由于IShape是一个接口,Rectangle类也必须实现Area(),它不知道如何实现.因此,我似乎被卡住了,要么为Rectangle定义'dummy'Fare()方法,要么完全使用继承权.
有没有办法规避这个?我通过c#和StackOverflow在Richter的clr中广泛阅读.提前致谢!
我熟悉xts子集化功能.但是,我找不到一种优雅的方法来对参数化日期范围进行子集化.这样的事情:
times = c(as.POSIXct("2012-11-03 09:45:00 IST"),
as.POSIXct("2012-11-05 09:45:00 IST"))
#create an xts object:
xts.obj = xts(c(1,2),order.by = times)
#filter with these dates:
start.date = as.POSIXct("2012-11-03")
end.date = as.POSIXct("2012-11-04")
#instead of xts["2012-11-03"/"2012-11-04"], do something like this:
xts[start.date:end.date]
Run Code Online (Sandbox Code Playgroud)
有人有任何想法吗?谢谢!
我想要一个容器(让我们说一个std :: vector)来保存各种继承类型,并实例化它们,.ie矢量类 - >对象矢量.
例如:
class A{};
class B: public class A
{};
class C: public class A
{};
void main()
{
std::vector<of inherited A types> typesVec;
std::vector<A*> objectsVec;
typesVec.push_back(class B);
typesVec.push_back(class C);
for (int i = 0; i < typesVec.size(); i++)
{
A* pA = new typesVec.at(i);
objectsVec.push_back(pA);
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢..
我使用glsl作为GPGPU的框架进行实时图像处理.我目前正在尝试"刮掉"几毫秒来使我的应用程序实时.这是基本设置:
我拍摄输入图像,计算它的几个变换,然后输出结果图像.例如,让输入图像为I.然后,一个片段着色器计算f(I);第二个计算g(I);,最后一个计算h(f(I),g(I)).
我的问题是关于有效计算f(I),g(I):如果我使用2个单独的片段着色器(因此2个渲染通道),或者如果我使用具有2个输出的单个片段着色器,这是否重要?后者会跑得更快吗?我大多发现了关于"如何做"的讨论; 不是表现.
感谢到目前为止的回复.下面是几个评论,以下是我的用例示例,其中包含更多详细信息:
我希望I用1-d滤镜过滤图像行; 并且还过滤平方图像的行(每个像素的平方). f(I) = filter rows并且g(I) = square and filter rows:
shader1: (input image) I --> filter rows --> I_rows (output image)
shader2: (input image) I --> square pixels and filter rows--> I^2_rows (output image)
问题是:编写一个着色器,执行两个操作比一个接一个地运行这两个着色器要快吗?@derhass建议答案是肯定的,因为访问相同的纹理位置和享受地点.但如果它不适合纹理局部:我还能享受性能提升吗?或者是一个着色器渲染到两个输出基本上相当于两个渲染过程?