VBA-DotNetLib

所属分类:C#编程
开发工具:VBA
文件大小:0KB
下载次数:0
上传日期:2023-07-30 09:46:11
上 传 者sh-1993
说明:  .Net Framework 4.8.1的COM互操作包装器,
(COM Interlop wrappers of the .Net Framework 4.8.1,)

文件列表:
COMDotNetLib/ (0, 2023-12-26)
COMDotNetLib/.vs/ (0, 2023-12-26)
COMDotNetLib/.vs/DotNetLib.csproj.dtbcache.json (21027, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/ (0, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/FileContentIndex/ (0, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/FileContentIndex/09afe6cc-c936-4987-9291-3c1adc69e773.vsidx (37422, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/FileContentIndex/2e4ed958-3eb1-466a-b810-b667567a8478.vsidx (33938, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/FileContentIndex/36a8e1af-5021-4136-84d6-aa7d157fd4d8.vsidx (554861, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/FileContentIndex/bdbf81be-8608-4dfa-9771-2712d171c6c1.vsidx (37356, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/FileContentIndex/f4e5beec-916d-4271-b4d4-5550b5c53ec4.vsidx (33486, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/v17/ (0, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/v17/.suo (1403904, 2023-12-26)
COMDotNetLib/.vs/DotNetLib/v17/fileList.bin (84656, 2023-12-26)
COMDotNetLib/CoordinateSharp/ (0, 2023-12-26)
COMDotNetLib/CoordinateSharp/CelestialInfo.cs (1291, 2023-12-26)
COMDotNetLib/CoordinateSharp/Coordinate.cs (883, 2023-12-26)
COMDotNetLib/CoordinateSharp/CoordinateSingleton.cs (211, 2023-12-26)
COMDotNetLib/CoordinateSharp/ICelestialInfo.cs (762, 2023-12-26)
COMDotNetLib/CoordinateSharp/ICoordinate.cs (207, 2023-12-26)
COMDotNetLib/DotNetLib.csproj (22795, 2023-12-26)
COMDotNetLib/DotNetLib.csproj.user (286, 2023-12-26)
COMDotNetLib/DotNetLib.pfx (1764, 2023-12-26)
COMDotNetLib/DotNetLib.sln (1098, 2023-12-26)
COMDotNetLib/Extensions/ (0, 2023-12-26)
COMDotNetLib/Extensions/CalendarExtension.cs (2675, 2023-12-26)
COMDotNetLib/Extensions/DirectoryInfoExtension.cs (728, 2023-12-26)
COMDotNetLib/Extensions/EncodingExtension.cs (2624, 2023-12-26)
COMDotNetLib/Extensions/FileSystemInfoExtension.cs (720, 2023-12-26)
COMDotNetLib/Extensions/IFormatProviderExtension.cs (513, 2023-12-26)
COMDotNetLib/Extensions/IWrappedObject.cs (187, 2023-12-26)
COMDotNetLib/Extensions/ListExtension.cs (878, 2023-12-26)
COMDotNetLib/Extensions/ObjectExtension.cs (956, 2023-12-26)
COMDotNetLib/Extensions/StringExtension.cs (894, 2023-12-26)
COMDotNetLib/Properties/ (0, 2023-12-26)
COMDotNetLib/Properties/AssemblyInfo.cs (1541, 2023-12-26)
COMDotNetLib/System/ (0, 2023-12-26)
COMDotNetLib/System/Array.cs (15212, 2023-12-26)
COMDotNetLib/System/Collections/ (0, 2023-12-26)
COMDotNetLib/System/Collections/ArrayList.cs (9105, 2023-12-26)
... ...

# VBA DotNetLib COM Interop wrappers of the .Net Framework 4.8.1 **Aim:** To create .Net Framework 4.8.1 COM Interop wrappers using C# to implement in VBA 64. This will enable various .Net Framework data types in VBA with early and/or late binding. Compatibility intially only VBA 64 on Windows as can only test on windows 64 bit of MS-Office. For Mac compatibility would require migrating to .Net Core. Classes initally focussing on are [DateTime](https://learn.microsoft.com/en-us/dotnet/api/system.datetime?view=netframework-4.8.1), [DateTimeOffset](https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset?view=netframework-4.8.1), [TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan?view=netframework-4.8.1), [TimeZoneInfo](https://learn.microsoft.com/en-us/dotnet/api/system.timezoneinfo?view=netframework-4.8.1) and associated classes. Aug 29, 2023 Added: [CultureInfo](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo?view=netframework-4.8.1), [DateTimeFormatInfo](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.datetimeformatinfo?view=netframework-4.8.1), [NumberFormatInfo](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.numberformatinfo?view=netframework-4.8.1), [TextInfo](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.textinfo?view=netframework-4.8.1) . Sep 19, 2023 Added: [ChineseLunisolarCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.chineselunisolarcalendar?view=netframework-4.8.1), [GregorianCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.gregoriancalendar?view=netframework-4.8.1), [HebrewCalendar ](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.hebrewcalendar?view=netframework-4.8.1), [HijriCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.hijricalendar?view=netframework-4.8.1), [JapaneseCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.japanesecalendar?view=netframework-4.8.1), [JulianCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.juliancalendar?view=netframework-4.8.1), [KoreanCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.koreancalendar?view=netframework-4.8.1), [PersianCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.persiancalendar?view=netframework-4.8.1), [ThaiBuddhistCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.thaibuddhistcalendar?view=netframework-4.8.1), [UmAlQuraCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.umalquracalendar?view=netframework-4.8.1) Sep 22, 2023 Added: [CompareInfo](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.compareinfo?view=netframework-4.8.1) Sep 23, 2023 Added [String](https://learn.microsoft.com/en-us/dotnet/api/system.string?view=netframework-4.8.1) For the VBA singleton wrapper renamed String to Strings due to VBA reserved word. Sep 25, 2023 Added [Regex](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.8.1) Implemented so far Regex.Unescape and Regex.Escape Sep 30, 2023 Added [System.Text.RegularExpressions](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions?view=netframework-4.8.1), [Capture](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.capture?view=netframework-4.8.1), [CaptureCollection](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.capturecollection?view=netframework-4.8.1), [Group](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.group?view=netframework-4.8.1), [GroupCollection](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.groupcollection?view=netframework-4.8.1), [Match](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.match?view=netframework-4.8.1), [MatchCollection](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.matchcollection?view=netframework-4.8.1), [Regex](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.8.1) Oct 3, 2023 Added [ListString](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=netframework-4.8.1) - Attempted to dynamically create a List providing the data type instance however having issues casting, therefore will wrap a List for various basic types individually. - Testing still to be done. Create, Add, BinarySearch, Contains, IndexOf, Insert, Reverse, Sort, appears functioning correctly. Oct 5, 2023 Added [ArrayList](https://learn.microsoft.com/en-us/dotnet/api/system.collections.arraylist?view=netframework-4.8.1) Oct 12, 2023 Added [Array](https://learn.microsoft.com/en-us/dotnet/api/system.array?view=netframework-4.8.1), [Type](https://learn.microsoft.com/en-us/dotnet/api/system.type?view=netframework-4.8.1), [GenericParameterAttributes](https://learn.microsoft.com/en-us/dotnet/api/system.reflection.genericparameterattributes?view=netframework-4.8.1) Oct 15, 2023 Added [Queue](https://learn.microsoft.com/en-us/dotnet/api/system.collections.queue?view=netframework-4.8.1), [Stack](https://learn.microsoft.com/en-us/dotnet/api/system.collections.stack?view=netframework-4.8.1) Oct 16, 2023 Added [SortedList](https://learn.microsoft.com/en-us/dotnet/api/system.collections.sortedlist?view=netframework-4.8.1) Oct 17, 2023 Added [CaseInsensitiveComparer](https://learn.microsoft.com/en-us/dotnet/api/system.collections.caseinsensitivecomparer?view=netframework-4.8.1), [StringComparer](https://learn.microsoft.com/en-us/dotnet/api/system.stringcomparer?view=netframework-4.8.1) Oct 18, 2023 Added [DictionaryEntry](https://learn.microsoft.com/en-us/dotnet/api/system.collections.dictionaryentry?view=netframework-4.8.1), [Hashtable](https://learn.microsoft.com/en-us/dotnet/api/system.collections.hashtable?view=netframework-4.8.1) Oct 31, 2023 Added [StringBuilder](https://learn.microsoft.com/en-us/dotnet/api/system.text.stringbuilder?view=netframework-4.8.1) Nov 2, 2023 Added [BitArray](https://learn.microsoft.com/en-us/dotnet/api/system.collections.bitarray?view=netframework-4.8.1) Nov 16, 2023 Added [Directory](https://learn.microsoft.com/en-us/dotnet/api/system.io.directory?view=netframework-4.8.1), [DirectoryInfo](https://learn.microsoft.com/en-us/dotnet/api/system.io.directoryinfo?view=netframework-4.8.1), [Environment](https://learn.microsoft.com/en-us/dotnet/api/system.environment?view=netframework-4.8.1), [File](https://learn.microsoft.com/en-us/dotnet/api/system.io.file?view=netframework-4.8.1), [FileInfo](https://learn.microsoft.com/en-us/dotnet/api/system.io.fileinfo?view=netframework-4.8.1), [Path](https://learn.microsoft.com/en-us/dotnet/api/system.io.path?view=netframework-4.8.1) , [FileSystemInfo](https://learn.microsoft.com/en-us/dotnet/api/system.io.filesysteminfo?view=netframework-4.8.1), [StreamWriter](https://learn.microsoft.com/en-us/dotnet/api/system.io.streamwriter?view=netframework-4.8.1) [AccessControlSections](https://learn.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.accesscontrolsections?view=netframework-4.8.1), [SpecialFolderOption](https://learn.microsoft.com/en-us/dotnet/api/system.environment.specialfolderoption?view=netframework-4.8.1), [SpecialFolders](https://learn.microsoft.com/en-us/dotnet/api/system.environment.specialfolder?view=netframework-4.8.1), [StringSplitOptions](https://learn.microsoft.com/en-us/dotnet/api/system.stringsplitoptions?view=netframework-4.8.1) Nov 23, 2023 Added [ASCIIEncoding](https://learn.microsoft.com/en-us/dotnet/api/system.text.asciiencoding?view=netframework-4.8.1), [Encoding](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding?view=netframework-4.8.1), [UnicodeEncoding](https://learn.microsoft.com/en-us/dotnet/api/system.text.unicodeencoding?view=netframework-4.8.1), [UTF32Encoding](https://learn.microsoft.com/en-us/dotnet/api/system.text.utf32encoding?view=netframework-4.8.1), [UTF7Encoding](https://learn.microsoft.com/en-us/dotnet/api/system.text.utf7encoding?view=netframework-4.8.1), [UTF8Encoding](https://learn.microsoft.com/en-us/dotnet/api/system.text.utf8encoding?view=netframework-4.8.1) **Affected API due to VBA reserved words:** The API for the .Net class or VBA singletons for associated .Net classes may be required to be altered due to VBA reserved words. See [reserved-word-list](https://www.engram9.info/access-2007-vba/reserved-word-list.html). - [TimeZoneInfo.Local](https://learn.microsoft.com/en-us/dotnet/api/system.timezoneinfo.local?view=netframework-4.8.1) renamed to TimeZoneInfo.Locale. - [String](https://learn.microsoft.com/en-us/dotnet/api/system.string?view=netframework-4.8.1) VBA singleton renamed to Strings. - [Array](https://learn.microsoft.com/en-us/dotnet/api/system.array?view=netframework-4.8.1) VBA singleton renamed to Arrays. - [Type](https://learn.microsoft.com/en-us/dotnet/api/system.type?view=netframework-4.8.1) VBA singleton renamed to Types. As VBA doesnot have member overloading factory methods and member overloads will differ. Overloads generally are named with a preceeding number. Unique naming maybe used for factory methods. **Dependencies:** - [DotNetLib.tlb type library](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/COMDotNetLib/bin/Release) - mscorlib.tlb type library eg Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.tlb - VBIDE (Microsoft Visual Basic for Applications Extensibility 5.3) for the Rubberduck utility exporting components - .NET Framework If it is not installed see [Download .NET Framework](https://dotnet.microsoft.com/en-us/download/dotnet-framework) **Usage:** 1) Register [DotNetLib.tlb](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/COMDotNetLib/bin/Release) - Either building the project in Visual Studio which registers the DotNetLib.tlb or run RegAsm.exe in administrator to register the type library [DotNetLib.tlb](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/COMDotNetLib/bin/Release). - Currently manually installation and registration for type library [DotNetLib.tlb](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/COMDotNetLib/bin/Release) See: [register-dll](http://www.geeksengine.com/article/register-dll.html) - Copy the [DotNetLib.tlb](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/COMDotNetLib/bin/Release) files to a location which don't intend to change eg. C:\ProgramData\DotNetLib then register the DotNetLib type library - Eg. To register C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe C:\ProgramData\DotNetLib\DotNetLib.dll /tlb - Eg. To unregister C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe C:\ProgramData\DotNetLib\DotNetLib.dll /tlb /unregister - If the files are moved will require to unregister and register manually. - If the DotNetLib type library is updated will require to unregister and register manually. 2) Add References required. - Eg In MS-Access, MS-Excel see Tools->References - For [DotNetLibrary.accdb](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/blob/main/VBA/DotNetLibrary.accdb) references may be required to be fixed by removing and adding back in. - Add reference DotNetlib.tlb (Com Interlop wrappers of the .Net Framework 4.8.1) i.e. browse to location where stored - Add reference mscorlib.tlb version 2.4 - Add reference Microsoft VBScript Regular Expressions 5.3 (Required only for the [Rubberduck export utility](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/VBA/Rubberduck%20Utility) not part of VBADotNetLib) - The type libraries added can be viewed under View->Object Browser and select DotNetLib.tlb 3) Add the [VBADotNetLib](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/VBA/VBADotNetLib/) VBA Factory/Singleton classes into a project. - Either copy the classes or add a reference to project containing the classes. 4) Recommended install [Rubberduck](https://rubberduckvba.com/) VBA Addin. For detailed explanation of the DotNetLib class properties see [netframework-4.8.1](https://learn.microsoft.com/en-us/dotnet/api/system?view=netframework-4.8.1) Ms Access database [VBADotNetLibrary.accdb](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/VBA/MS-Access) VBA Factory classes and [examples](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/VBA/Examples) for the DotNetLib.tlb. Also a MS-Excel version [VBADotNetLib.xlsm](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/tree/main/VBA/Ms-Excel) . Note: The MS-Access contains the latest version of VBADotNetLibrary and examples as the development is performed in MS-Access and periodically exported to the VBADotNetLibrary MS-Excel spreadsheet. **Regular expressions : Converting strings containing escape sequences and special characterss:** To use escape and special characters. Note if require quotes " require to escape in VBA with double quotes. VBA Example using Regex.Unescape with hexadecimal escape sequences ``` Dim stringUpper As String stringUpper = "\x41\x42\x43" ' Create upper-case characters from their Unicode code units. stringUpper = Regex.Unescape(stringUpper) Debug.Print stringUpper 'Output: ABC ``` **Issues:** Hashtable.Item(key) = valuetype causes an Object required error for value types. Added member SetValue(key,value) to use as an alternative until fixed. - To fix requires creating an IDL and manually adding a propput for value types and compiling type library with MIDL. ArrayList.Item(index) = item - Cannot assign value types using arraylist.Item(index) = valueType - Eg. ```pvtStringList.Item(2) = "abcd" ``` Will produce a Run-time error 424 Object required - To cater for value types added the Arraylist.SetItem(index,item) member. Arraylist.SetItem(index,item) can be use for value or object types. - Eg. assigning a value type ```pvtStringList.SetItem 2, "abcd"``` - Currently List COM object wont allow to be created getting invalid use of New Keyword. This will removed and replaced with it's non-generic equivalent.. - Too many things to do. Argh! **Things To do** - Unit testing using Rubberduck unit testing. - [Create an installer from Microsoft Visual Studio](https://www.advancedinstaller.com/user-guide/tutorial-ai-ext-vs.html#section761) **Update History** **Status: Latest Updates** **DotNetLib Update September 30th, 2023** Added [System.Text.RegularExpressions](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions?view=netframework-4.8.1), [Capture](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.capture?view=netframework-4.8.1), [CaptureCollection](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.capturecollection?view=netframework-4.8.1), [Group](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.group?view=netframework-4.8.1), [GroupCollection](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.groupcollection?view=netframework-4.8.1), [Match](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.match?view=netframework-4.8.1), [MatchCollection](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.matchcollection?view=netframework-4.8.1), [Regex](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.8.1) Todo: - Implement VBA singleton classes for Match and Group for static members. - Examples and unit testing. **DotNetLib Update September 25th, 2023** Added [Regex](https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=netframework-4.8.1) - Implemented Regex.Unescape and Regex.Escape - Regex.Unescape can be used to convert VBA literal strings containing escape characters. Updated Strings, added the following members - Compare, CompareOrdinal, Copy, Equals, IsNullOrEmpty, IsNullOrWhiteSpace **DotNetLib Update September 23rd, 2023** Added [String](https://learn.microsoft.com/en-us/dotnet/api/system.string?view=netframework-4.8.1) - So far only implemented static members [String.Format](https://learn.microsoft.com/en-us/dotnet/api/system.string.format?view=netframework-4.8.1) - Renamed String to Strings due to VBA reserved word. Added: IFormatProviderExtension.cs to UnWrap IFormatProvider types. **DotNetLib Update September 22nd, 2023** - Renamed abstract class ICalendar to Calendar to keep consistent with Net Framework - Updated VBADotNetLib for affected calendar classes and examples. - Added CompareInfo, CultureInfo.CompareInfo member properties now availble. - Todo add to VBADotNetLib CompareInfo singleton class. **DotNetLib Update September 20th, 2023** Updated DateTime.cs, IDateTime.cs, DateTimeSingleton, IDateTimeSingleton.cs, - Added factory methods for ICalendar parameter. - public DateTime CreateFromDate2(int pYear, int pMonth, int pDay, ICalendar calendar) - public DateTime CreateFromDateTime2(int pYear, int pMonth, int pDay, int pHour, int pMinute, int pSecond, ICalendar calendar) - public DateTime CreateFromDateTime3(int pYear, int pMonth, int pDay, int pHour, int pMinute, int pSecond, int pMillisecond, ICalendar calendar) - public DateTime CreateFromDateTimeKind3(int pYear, int pMonth, int pDay, int pHour, int pMinute, int pSecond, int pMillisecond, ICalendar calendar, DateTimeKind pKind) - [DateTime.cls](https://github.com/MarkJohnstoneGitHub/VBA-DotNetLib/blob/main/VBA/VBADotNetLib/System/DateTime.cls) added the above new factory methods available from DateTimeSingleton DotNetLib.tlb. Todo add examples and testing. - Update DotNetLib class members that reference the Calendar class. - Eg. DateTime constructors, DateTimeOffset constructors - Updated DateTimeFormatInfo.Calendar member to use wrapped ICalendar. DateTimeFormatInfo.Calendar property should now be available to access and set. (Require to test) **DotNetLib Update September 19th, 2023** - Implemented abstract class [Calendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.calendar?view=netframework-4.8.1) as ICalendar, updated CultureInfo for properties Calendar and OptionalCalendars which are now availbable and added the following calendars: - [ChineseLunisolarCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.chineselunisolarcalendar?view=netframework-4.8.1) - [GregorianCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.gregoriancalendar?view=netframework-4.8.1) - [HebrewCalendar ](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.hebrewcalendar?view=netframework-4.8.1) - [HijriCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.hijricalendar?view=netframework-4.8.1) - [JapaneseCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.japanesecalendar?view=netframework-4.8.1) - [JulianCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.juliancalendar?view=netframework-4.8.1) - [KoreanCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.koreancalendar?view=netframework-4.8.1) - [PersianCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.persiancalendar?view=netframework-4.8.1) - [TaiwanCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.taiwancalendar?view=netframework-4.8.1) - [ThaiBuddhistCalendar](https://learn.microsoft.com/en-us/dotnet/api/system.globalization.thaibudd ... ...

近期下载者

相关文件


收藏者