[英]C# non-static class inside static class JINT
嗨,试图在静态类中创建一个类以在 JINT 中使用,但是当它被引用时,我收到一个错误
C# 代码
namespace Hi {
public static class Ok {
public class Wowa {
public Wowa(){}
}
}
}
但是当我尝试在 JavaScript 中创建一个新的时,我收到来自 JINT 的错误“该对象不能用作构造函数”
var k = new Hi.Ok.Wowa()
我这样做对吗? 如何设置 C# 以便能够在 JINT 的 JavaScript 中使用上述代码?
顺便说一句,如果不是“Ok”是一个静态类,而是一个命名空间,它可以工作,但我希望它作为一个类,因为我也想在其中包含静态方法
您不能在静态类( ReadThis )中使用非静态类,但是如果您在第一个类中删除(静态)
namespace Hi {
public class Ok {
public class Wowa {
public Wowa(){}
}
}
}
并且可以说它没有太大区别,因为 (Static) 只会使您的类的子类别必须使用 (Static)。 但是如果你想让你的类不可能建立在变量上,你可以使用 abstract( ReadThis )
namespace Hi {
public abstract class Ok {
public class Wowa {
public Wowa(){}
}
}
}
和
Main()
{
Ok k = new Ok();//Error
}
想象一下你有这个:
namespace Hi
{
public static class Ok
{
public class Wowa
{
public Wowa() { }
public static string MyStaticMethod() => "Hello from 'Static Method'";
public string MyNormalMethod() => "Hello from 'Normal Method'";
}
}
}
这是可能使用非静态类Wowa
通过制作实例,然后你可以调用MyNormalMethod
该实例的(你只能调用类的实例中没有静态方法)。
Hi.Ok.Wowa wowa = new Hi.Ok.Wowa();
wowa.MyNormalMethod();
无需创建任何Wowa
实例,您就可以在其中调用静态方法,如下所示:
Hi.Ok.Wowa.MyStaticMethod();
最后,您可以在此处查看工作代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.