⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 namespacesarepascalcased.cs

📁 c#源代码
💻 CS
字号:
// <file>
//     <copyright see="prj:///doc/copyright.txt"/>
//     <license see="prj:///doc/license.txt"/>
//     <owner name="Mike Krueger" email="mike@icsharpcode.net"/>
//     <version value="$version"/>
// </file>

using System;
using System.Collections;

namespace ICSharpCode.AssemblyAnalyser.Rules
{
	/// <summary>
	/// Description of NamespacesArePascalCased.	
	/// </summary>
	public class NamespacesArePascalCased : AbstractReflectionRule, INamespaceRule
	{
		public override string Description {
			get {
				return "${res:ICSharpCode.AssemblyAnalyser.Rules.NamespacesArePascalCased.Description}";
			}
		}
		
		public override string Details {
			get {
				return "${res:ICSharpCode.AssemblyAnalyser.Rules.NamespacesArePascalCased.Details}";
			}
		}
		
		public NamespacesArePascalCased()
		{
			base.certainty = 99;
		}
		
		public Resolution Check(string namespaceName, ICollection types)
		{
			string[] namespaces = namespaceName.Split('.');
			foreach (string name in namespaces) {
				if (!NamingUtilities.IsPascalCase(name)) {
					for (int i = 0; i < namespaces.Length; ++i) {
						namespaces[i] = NamingUtilities.PascalCase(namespaces[i]);
					}
					return new Resolution(this, "${res:ICSharpCode.AssemblyAnalyser.Rules.NamespacesArePascalCased.Resolution}", namespaceName, new string[,]{{"NamespaceName", namespaceName}, {"AlternateName", String.Join(".", namespaces) }});
				}
			}
			return null;
		}
	}
}
#region Unit Test
#if TEST
namespace ICSharpCode.AssemblyAnalyser.Rules
{
	using NUnit.Framework;

	[TestFixture]
	public class NamespacesArePascalCasedTest
	{
		[Test]
		public void TestCorrectNamespaces()
		{
			NamespacesArePascalCased namespacesArePascalCased = new NamespacesArePascalCased();
			Assertion.AssertNull("Empty Namespace", namespacesArePascalCased.Check("", null));
			Assertion.AssertNull("Single Namespace", namespacesArePascalCased.Check("MyNamespace", null));
			Assertion.AssertNull("Complex Namespace", namespacesArePascalCased.Check("System.Windows.Form", null));
		}
		
		[Test]
		public void TestIncorrectAttribute()
		{
			NamespacesArePascalCased namespacesArePascalCased = new NamespacesArePascalCased();
			Assertion.AssertNotNull(namespacesArePascalCased.Check("a", null));
			Assertion.AssertNotNull(namespacesArePascalCased.Check("A.Namespace.isWrong", null));
			Assertion.AssertNotNull(namespacesArePascalCased.Check("System.windows.Form", null));
		}
	}
}
#endif
#endregion

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -