資源簡介
通過反射修改私有字段
【核心代碼】
using System; using System.Collections.Generic; using System.Data; using System.Globalization; using System.Reflection; using System.Runtime.CompilerServices; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //輸出未修改前本地化設置的ToString結果 Console.WriteLine(DateTime.Now); //還真沒測出DateTimeFormatInfo.CurrentInfo是NULL的情況,但是預防一下 if (DateTimeFormatInfo.CurrentInfo != null) { var type = DateTimeFormatInfo.CurrentInfo.GetType(); var field = type.GetField("generalLongTimePattern", BindingFlags.NonPublic | BindingFlags.Instance); //我慫!! if (field != null) field.SetValue(DateTimeFormatInfo.CurrentInfo, "yyyy-MM-dd HH:mm:ss"); } //輸出修改后的結果 Console.WriteLine(DateTime.Now); //修改默認時間ToString格式的的另一種方式 [多線程失效] //Thread.CurrentThread.CurrentCulture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); //DateTimeFormatInfo.CurrentInfo.ShortDatePattern = "yyyy-MM-dd"; //DateTimeFormatInfo.CurrentInfo.LongTimePattern = "HH:mm:ss"; //Console.WriteLine(DateTime.Now.ToString()); //var thread = new Thread(() => Console.WriteLine(DateTime.Now)); //thread.Start(); ////同上 //var action = new Action(() => Console.WriteLine(DateTime.Now)); //action.BeginInvoke(null, null); Console.ReadLine(); } } }
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Data;
using?System.Globalization;
using?System.Reflection;
using?System.Runtime.CompilerServices;
using?System.Threading;
namespace?ConsoleApplication1
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????//輸出未修改前本地化設置的ToString結果
????????????Console.WriteLine(DateTime.Now);
????????????//還真沒測出DateTimeFormatInfo.CurrentInfo是NULL的情況,但是預防一下
????????????if?(DateTimeFormatInfo.CurrentInfo?!=?null)
????????????{
????????????????var?type?=?DateTimeFormatInfo.CurrentInfo.GetType();
????????????????var?field?=?type.GetField(“generalLongTimePattern“?BindingFlags.NonPublic?|?BindingFlags.Instance);
????????????????//我慫!!
????????????????if?(field?!=?null)
????????????????????field.SetValue(DateTimeFormatInfo.CurrentInfo?“yyyy-MM-dd?HH:mm:ss“);
????????????}
????????????//輸出修改后的結果
????????????Console.WriteLine(DateTime.Now);
????????????//修改默認時間ToString格式的的另一種方式?[多線
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-06?11:11??ConsoleApplication1\
?????目錄???????????0??2016-01-05?17:45??ConsoleApplication1\bin\
?????目錄???????????0??2016-01-05?17:45??ConsoleApplication1\bin\Debug\
?????文件????????5120??2016-01-06?09:27??ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
?????文件???????13824??2016-01-06?09:27??ConsoleApplication1\bin\Debug\ConsoleApplication1.pdb
?????文件???????22704??2016-01-06?11:07??ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe
?????文件?????????490??2015-10-30?15:19??ConsoleApplication1\bin\Debug\ConsoleApplication1.vshost.exe.manifest
?????文件????????2521??2015-12-25?13:28??ConsoleApplication1\ConsoleApplication1.csproj
?????目錄???????????0??2016-01-05?17:45??ConsoleApplication1\obj\
?????目錄???????????0??2016-01-06?09:27??ConsoleApplication1\obj\Debug\
?????文件????????1141??2016-01-06?11:07??ConsoleApplication1\obj\Debug\ConsoleApplication1.csproj.FileListAbsolute.txt
?????文件????????1414??2015-12-25?13:23??ConsoleApplication1\obj\Debug\ConsoleApplication1.csprojResolveAssemblyReference.cache
?????文件????????5120??2016-01-06?09:27??ConsoleApplication1\obj\Debug\ConsoleApplication1.exe
?????文件???????13824??2016-01-06?09:27??ConsoleApplication1\obj\Debug\ConsoleApplication1.pdb
?????文件????????6594??2016-01-06?09:01??ConsoleApplication1\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????目錄???????????0??2015-12-25?13:18??ConsoleApplication1\obj\Debug\TempPE\
?????文件????????1771??2016-01-06?11:11??ConsoleApplication1\Program.cs
?????目錄???????????0??2016-01-05?17:45??ConsoleApplication1\Properties\
?????文件????????1362??2015-12-25?13:18??ConsoleApplication1\Properties\AssemblyInfo.cs
?????文件????????1026??2015-12-25?13:18??ConsoleApplication1.sln
?????文件???????48640??2016-01-06?11:16??ConsoleApplication1.v12.suo
- 上一篇:C# 將阿拉伯數字轉為中文大寫
- 下一篇:基于瑞薩單片機的觸摸按鍵驅動
評論
共有 條評論