Category Archives: StyleCop

SA1200 : CSharp.Ordering : All using directives must be placed inside of the namespace.

以下的StyleCop警告主要是和Scope 有關的..
SA1200 : CSharp.Ordering : All using directives must be placed inside of the namespace.
SA1200 : CSharp.Ordering : All using directives must be placed inside of the namespace

當你有很多不同的ClassesNamespace
而你的這個Class 和另外一個Namespace上的Class 有相同的名稱上時..
directives放在Namespace內會比較好一點..

這個情況有點複雜..有時候再多加解釋

解決方法:
我們只要把directives放在Namespace內便可以了
E.G. 把程式碼由這個


<strong>using System;</strong>
<strong>using System.Collections.Generic;</strong>
<strong>using System.Linq;</strong>
<strong>using System.Text;</strong>
<strong>using System.Threading.Tasks;</strong>

namespace LGetTextWP8.Classes
{

    class Get_Text_CL
    {
    }
}

SA1200 : CSharp.Ordering : All using directives must be placed inside of the namespace
轉成

namespace LGetTextWP8.Classes
{
  <strong>  using System;</strong>
<strong>    using System.Collections.Generic;</strong>
<strong>    using System.Linq;</strong>
<strong>    using System.Text;</strong>
<strong>    using System.Threading.Tasks;</strong>

    class Get_Text_CL
    {
    }
}

SA1200  CSharp.Ordering  All using directives must be placed inside of the namespace
Happy Coding – Please correct me if my concept is wrong

SA1300 : CSharp.Naming : namespace names begin with an upper-case letter – StyleCop Warning

SA1300 : CSharp.Naming : namespace names begin with an upper-case letter
SA1300 : CSharp.Naming : namespace names begin with an upper-case letter

這個警告是因為我把用來放入自定Helper Class的資料夾用了小寫 來開頭
之後在入面建立的ClassNamespace 便會用了小寫 來定義..

namespace LGetTextWP8.<strong>classes</strong>{

}

解決方法十分簡單
只要把資料夾的開首的一個字母轉成大寫便可以了
SA1300 : CSharp.Naming : namespace names begin with an upper-case letter - Updated Folder

[當然你也是把你的Namespace 也轉成首個字母大寫]

namespace LGetTextWP8.<strong>Classes</strong>{

}

Happy Coding

StyleCop – SA1001: CSharp.Spacing: Invalid spacing around the comma.

今天開始更新我之前寫的ShareChiWaiUtilityLib的程式碼..
希望從現在開始我寫的程式碼會比較有質數一點
使用StyleCop的方法十分簡單 只要在Visual Studio 的Solution Explorer上的Source Code 檔案上按右鍵, 選擇 “Run StyleCop
 photo SA1600ClassMustHaveaDocumentHeader.jpg
之後 結果便會在 Output Windows 的 “Error List” Windows 上的Warning 分頁 上出現

當我執行StyleCop的時候..
第一個收到的Warning是1 “SA1001: CSharp.Spacing: Invalid spacing around the comma.
 photo SA1001InvalidSpacingAroundComma.png

問題是因為我的程式碼上在分號/Comma後沒有留一個空格
tbl.Rows.Add(new Object[] { “00005”,”Beef”,1.99,0.8,”00002″ });
 photo SA1001InvalidSpacingAroundCommaCode.png
解決方法:
只要在分號後加上空格便可以了
tbl.Rows.Add(new Object[] { “00006”, “Broccoli”, 1.09, 0.5, “00003” });

Happy Coding =P

Best Practices 由Coding Standard 開始 免費套件介紹StyleCop

早前上了一個有關SQL的Talk上聽了一個很有道理的理論..
怎樣可以增加自己的工作效能/Efficienct呢?

能夠很快捷地寫完一個程式?
[這可能只有一些自己感到舒服的Coding方法[除心所欲]…
E.G. 沒有Code寫上Comment或好好的Indent好
或者沒有一個Coding Standard的做法]

其實這種寫Code 的模式雖然可以很快地把程式或功能完成
但是長遠來看..這會增力寫程式維護/和寫更多功能時的時間
以下是一些原因[如果大家大更多的原因…歡迎留言和大家分享]
– 使程式碼更容易閱讀 E.G. 如果好好的把程式碼分開格式化/Format Code 這可以增加程式碼的可讀性

  • 增加程式的效能
  • 令到其他Teammate可以更容易學習到你的程式碼…當Teammate要接手Enhance你的程式碼時..由於大家都是以同一個Coding Standard來寫程式的關係..所以便很容易可以明白了

StyleCop 是一個Visual StudioExtension
他可以幫你檢查你的程式碼..看看他們合乎不合乎他們的Coding Standard
當然有些Rule我們是可以在StyleCop的設定上開啟或關閉的
所以大家可以以自己各得的重要性來選擇那一些可以不使用…Etc

StyleCop的另一個有用的地方就是可以Integrate 到 TFS – Build Service上.
當大家把完成了的程式碼Check-In到TFS 上時…TFS 可以執行StyleCop去確定
你的程式碼以合乎要求才可以Check-In
和即使Check-In了 當TFS Build Service 發現有些Code不合乎要求也會 Fail to Build

有興趣的朋友可以到以下網址找到更多有關StyleCop 的資訊

有時間我會更新更多有關StyleCop的文章

http://stylecop.codeplex.com/

Hope you find it useful