2011-03-11 41 views
0

我目前正在與腳本#(版本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下編譯時沒有任何錯誤
我在做什麼錯?可能發生

回答

1

我認爲這是與當前版本的問題。如果將類文件移動到項目的根目錄下,它是否工作?

編輯:更正,這是由於當前版本的更改。從@scriptsharp通過twitter:「web app project產生多個腳本(每個文件夾)。如果你不需要這個模型,只需使用一個class lib項目.HTH。」它並不習慣這樣做。仍然不完全解釋它輸出可怕的錯誤信息的原因。我喜歡它迫使你將應用程序邏輯從對象模型中分離出來,但是如果這種變化被記錄在某個明顯的地方,那將會很好。我喜歡SS,並且非常希望看到它成長爲一個更嚴重的開發/支持的應用程序。

+0

是的 - 類庫似乎工作。謝謝! – Matthias 2011-03-28 16:00:41

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();