我目前正在使用Script#(版本0.6.3),它抱怨以下代码:
检查您的C#源编译并且您没有使用不受支持的功能
[PROJECTDIR] \空间1 \ Bar.cs:
using Application1.Space2;
namespace Application1.Space1
{
public sealed class Bar
{
private void Baz()
{
IFoo foo = null;
foo.Do(); //Here
}
}
}
[PROJECTDIR] \空间2 \ IFoo.cs:
namespace Application1.Space2
{
public interface IFoo
{
void Do();
}
}
代码在常规csc.exe下编译时没有任何错误 我做错了什么?
答案 0 :(得分:1)
我认为这是当前版本的问题。如果将类文件移动到项目的根目录是否有效?
编辑:更正,这是由于当前版本的变化。从@scriptsharp到twitter:“web app项目产生多个脚本(每个文件夹)。如果你不需要那个模型,只需使用一个类lib项目.HTH。”它不习惯这样做。仍然没有准确地解释它输出那个可怕的错误信息的原因。我有点像是强迫你将应用程序逻辑与对象模型分开,但是如果将这种更改记录在某个显而易见的地方会很好。我喜欢SS,并且真的希望看到它成长为一个更认真开发/支持的应用程序。
答案 1 :(得分:0)
如果使用部分命名空间,例如:
,则会发生此错误using Application1;
namespace Application1.Space1
{
public class Bar
{
public Space2.Foo GetFoo()
{}
}
}
以上将产生编译器错误,而:
using Application1;
namespace Application1.Space1
{
public class Bar
{
public Application1.Space2.Foo GetFoo()
{}
}
}
编译时没有错误。
我也遇到过:
object.method().property.method();
修正:
variable = object.method();
variable.property.method();