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

📄 languages.cs

📁 全功能c#编译器
💻 CS
字号:
//
// -*- C# -*-
//
// Author:         Roman Taranchenko
// Copyright:      (c) 2004 Roman Taranchenko
// Copying Policy: GNU General Public License
//

namespace NewClassWizard
{
	using System.CodeDom.Compiler;
	using Microsoft.CSharp;
	using Microsoft.VisualBasic;
	
	public abstract class Language
	{
		public abstract ICodeGenerator GetDeclarationCodeGenerator();
		
		public abstract ICodeGenerator GetImplementationCodeGenerator();
	
		public abstract string GetDeclarationFileExt();
		
		public abstract string GetImplementationFileExt();	
		
		public abstract string GetName();
		
		public abstract new string ToString();

		// factory method		
		public static Language Create(string name)
		{
			switch (name)
			{
				case "C#":
					return new CSharp();
				case "VBNET":
					return new VisualBasic();
				case "C++.NET":
					return new CPlusPlus();
				default:
					throw new UnknownLanguageException("The language " + name + " is not supported by this wizard!");
			}
		}
		
		// common behavior
		public bool CanGenerateDeclaration()
		{
			return GetDeclarationCodeGenerator() != null;
		}
		
		public bool CanGenerateImplementation()
		{
			return GetImplementationCodeGenerator() != null;
		}
		
		public bool IsValidIdentifier(string identifier) {
			bool result = false;
			if (CanGenerateDeclaration()) {
				result = GetDeclarationCodeGenerator().IsValidIdentifier(identifier);
			}
			else if (CanGenerateImplementation()) {
				result = GetImplementationCodeGenerator().IsValidIdentifier(identifier);
			}
			return result;
		}

	}
	
	internal class CSharp : Language
	{
		public override ICodeGenerator GetDeclarationCodeGenerator()
		{
			return null;	
		}
		
		public override ICodeGenerator GetImplementationCodeGenerator()
		{
			return new CSharpCodeProvider().CreateGenerator();
		}
	
		public override string GetDeclarationFileExt()
		{
			return null;	
		}
		
		public override string GetImplementationFileExt()
		{
			return ".cs";	
		}
		
		public override string GetName()
		{
			return "C#";
		}
		
		public override string ToString()
		{
			return "C#";
		}
	}
	
	internal class VisualBasic : Language
	{
		public override ICodeGenerator GetDeclarationCodeGenerator()
		{
			return null;	
		}
		
		public override ICodeGenerator GetImplementationCodeGenerator()
		{
			return new VBCodeProvider().CreateGenerator();
		}
	
		public override string GetDeclarationFileExt()
		{
			return null;
		}
		
		public override string GetImplementationFileExt()
		{
			return ".vb";	
		}
		
		public override string GetName()
		{
			return "Visual Basic";
		}
		
		public override string ToString()
		{
			return "VBNET";
		}
		
	}

	internal class CPlusPlus : Language
	{
		public override ICodeGenerator GetDeclarationCodeGenerator()
		{
			return new CppCodeGenerator();
		}
		
		public override ICodeGenerator GetImplementationCodeGenerator()
		{
			return null;
		}
	
		public override string GetDeclarationFileExt()
		{
			return ".h";
		}
		
		public override string GetImplementationFileExt()
		{
			return null;
		}
		
		public override string GetName()
		{
			return "C++.NET";
		}
		
		public override string ToString()
		{
			return "C++.NET";
		}
	}
}

⌨️ 快捷键说明

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