我正在构建一个流畅的接口,其中我有一个包含大量流畅逻辑的基类,以及一个添加了一些特殊行为的派生类.我面临的问题是从派生类型的实例调用时基类中的流畅方法的返回类型.在调用基类的方法之后,只有基类的方法仍然可用于进一步的流畅调用.
更改调用方法的顺序将有助于编译,但它使其可读性降低,这对于流畅的接口来说是有意义的.有没有办法为基类定义某种"This"类型,以便所有方法返回相同的类型.
public class Field<T>
{
public Field<T> Name( string name )
{
_name = name;
return this;
}
}
public SpecialField<T> : Field<T>
{
public SpecialField<T> Special(){ return this; }
}
// !!! Arrgh. Special is not a member of the Field<T> class.
var specialField = new SpecialField()
.Name( "bing" )
.Special();
Run Code Online (Sandbox Code Playgroud)
我尝试通过执行类似下面的操作来解决它,但它无效C#:(但至少表达了我想如何编码接口.
public class Field<T,TThis> : TThis
where TThis : Field<T,TThis>
{
public TThis Name( string name ){...}
}
public SpecialField<T> : Field<T,SpecialField<T>>
{
public TThis …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Visual Studio 2008 中构建由其他程序员编写的 C# 解决方案。Visual Studio 抛出以下错误:
创建类型“SoftwareFX.ChartFX.Chart、ChartFX、Version=6.2.1342.0、Culture=neutral、PublicKeyToken=a1878e2052c08dce”System.ComponentModel.LicenseException 时发生异常:无法获取“SoftwareFX.ChartFX.Chart”的设计时许可证
我从未使用过 SoftwareFX 或 ChartFX。实际上我是 C/C++ 开发人员,不是 C# 开发人员,但必须调试这个项目。如何解决这个问题?
提前致谢。
为什么byte b = (byte) 0xFF等于integer -1?
例如:
int value = byte b = (byte) 0xFF;
System.out.println(value);
Run Code Online (Sandbox Code Playgroud)
它会打印-1吗?
我将使用Quartz在Iphone中开发2D游戏.
Quartz和QuartzCore的主要区别是什么?
我在互联网上搜索了很多,但只能通过Quartz示例查找MAC OS.
如果任何正文有使用Iphone Developement的Quartz(2D)示例的任何链接/ URL,它将在Real Iphone设备中运行?如果可能的话,也可以给Quartz Iphone的例子/存储库链接.
谢谢,
Mishal Shah
根据java,实例方法解析基于参数的运行时类型.
但是在解析实例变量时,它使用不同的方法,如下所示.
节目输出是......
Child
Parent
ParentNonStatic
Run Code Online (Sandbox Code Playgroud)
这里第一个输出基于参数的运行时类型,但第三个输出不是.
任何人都可以解释一下吗?
public class Child extends Parent {
public static String foo = "Child";
public String hoo = "ChildNonStatic";
private Child() {
super(1);
}
@Override
String please() {
return "Child";
}
public static void main(String[] args) {
Parent p = new Parent();
Child c = new Child();
//Resolving method
System.out.println(((Parent) c).please());
//Resolving Static Variable
System.out.println(((Parent) c).foo);
//Resolving Instance Variable
System.out.println(((Parent) c).hoo);
}
}
class Parent {
public static String foo = "Parent";
public String …Run Code Online (Sandbox Code Playgroud) 当Maven构建一个JAR文件时,它将模块的POM文件放在里面(似乎在目录<groupid>/<artifactid>中).
当我从Ant构建一个JAR文件以通过Maven Ant任务进行部署时,这个POM文件(JAR内部的文件)的存在是否重要?它似乎不是,但我只是想确保它没有在任何地方使用,并确认它应该在JAR文件中的确切位置.
这已被问过1000次,我在浏览之前浏览了不同的帖子,但没有找到答案.只要我用PHP编写程序,这一直是工作的噩梦.有人可以告诉我这里我做错了什么吗?
我在ini文件中设置了error_log以及error_reporting = E_ALL | E_STRICT
我还缺少什么?这通常给了我.我希望在ini文件中设置此集,而不是在我的脚本中.
另一件有趣的事情是,当我故意尝试在我的一个脚本中抛出错误时,Apache会一遍又一遍地重新启动.
这是我发生一次错误后的事件日志.在时间戳拍摄
Wed Nov 04 19:34:23 2009] [notice] Apache/2.2.14 (Win32) PHP/5.3.0 configured -- resuming normal operations
[Wed Nov 04 19:34:23 2009] [notice] Server built: Sep 28 2009 22:41:08
[Wed Nov 04 19:34:23 2009] [notice] Parent: Created child process 1700
[Wed Nov 04 19:34:23 2009] [notice] Child 1700: Child process is running
[Wed Nov 04 19:34:23 2009] [notice] Child 3008: Released the start mutex
[Wed Nov 04 19:34:23 2009] [notice] Child 1700: Acquired the …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个PHP站点,我想测试我的PHP文件而不将它们上传到我的主机.在我上传它们之前,基本上在我自己的机器上测试它们.我怎么做?