MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Сколько всего сейчас стандартных классов в C# .net?"
Answer 882523
Если считать стандартными классами .NET все типы (в том числе непубличные), расположенные в управляемых сборках в подкаталоге
%WINDIR%\Microsoft.NET\Framework\
соответствующей версии, для которых Type.IsClass возвращает true, можно посчитать их так:using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Reflection; namespace ConsoleApplication1 { class Program { static uint CountClasses(string asspath) { uint res = 0; Assembly ass = Assembly.LoadFile(asspath); foreach (var type in ass.GetTypes()) { if ( type.IsClass) { res++; } } return res; } static uint ProcessDirectory(string path) { uint res = 0; var files = Directory.GetFiles(path); foreach (var file in files) { if (Path.GetExtension(file).ToUpper() == ".DLL") { Console.WriteLine("{0}", file); try { res += CountClasses(file); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } var dirs = Directory.GetDirectories(path); foreach (var dir in dirs) { Console.WriteLine("{0}", dir); res += ProcessDirectory(dir); } return res; } static void Main(string[] args) { var count = ProcessDirectory(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\"); Console.WriteLine("Classes: {0}", count); Console.ReadKey(); } } }
Результаты:
Версия Классов .NET 4.7.2 43310 .NET 3.5 19785 (*) * - сумма результатов по каталогам 2.0, 3.0 и 3.5, так как это одна версия
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.