2007-05-01ãã1ã¶æéã®è¨äºä¸è¦§
http://www.microsoft.com/japan/msdn/columns/csharp/csharp08162001.aspxã¡ã¢ãç¹ã«æå¾ã®é¨åã®ä¾å¤ãã§ãã«ãã³ã³ãã¯ãã§ããã
PLINQã®è³æãè¦ã¤ãã¾ãããhttp://www.bluebytesoftware.com/blog/CommentView,guid,200c3151-fbd5-4bfe-bb1e-0d6b90c6442b.aspxãã®è¨äºãããã¯ãè³æãè½ã¨ãã¾ãã以åãPLINQã«ã¤ãã¦æ¸ããã¨ãã¯UNIXã®ãã¤ãã©ã¤ã³çãªä¸¦ååããèãã¦ãªãã£ããã§â¦
é¢é£ãã¿ã§ã åä¸æ§ã¯åããªãã¸ã§ã¯ããã©ããã®æ¯è¼ãç価æ§ã¯ä¸èº«ãåãå¤ãã©ããã®æ¯è¼ããã¤ã³ã¿ãåºæ¬ã®è¨èªãªããã¤ã³ã¿ã®æ¯è¼ã§åä¸æ§ã®æ¯è¼ãä¸èº«ã®æ¯è¼ã¯ç価æ§ã¨ãããããæ示çã§ãããããããåç §ãåºæ¬ã®è¨èªã ã¨ãã©ã¡ãã®æ¯è¼ãªã®ãã==â¦
.NETã¯ã¤ãºã®çãã åé¡åæ² ä»¥ä¸ã®çµæãäºæ³ãã¦ãã ããã using System; class Program { static void Main() { Console.WriteLine( double.NaN == double.NaN ); Console.WriteLine( double.NaN.Equals( double.NaN ) ); } }
ã¡ãããã¾ãã£ãæºã®ä¸ãããLifeHackæ¬ãçºæããããã¡äººéã£ã·ãã« orz
ããªãã ã®.NETã¯ã¤ãºã®åçã®æ¸ãããã¡ã¢ã C#ã§ã¯ã©ããããããªãã¨ããé¤ãã¦ã==ã使ããã£ã¦ãã¨ã§ããã®ããªï¼ã¤ã£ãã¿ãéä¸è¶³ã®ææããæè¦ã大æè¿ã§ãã
C++ã®çã¿ã®è¦ªBjarne Stroustrupæ°ã®FAQãè¦ã¤ããã http://www.research.att.com/~bs/bs_faq.htmlJavaãC#ãC++/CLIãã©ãæããæ¸ãã¦ãã£ã¦èå³æ·±ããé£ããè¨èªãä½ã人ã ããã£ã¦ãæ¸ãã¦ããè±èªãã¾ãé£ãã(^^; é£ããã®åºæºã人ããé«ããã ãããªâ¦
使ãã©ãããããããªãã£ã¦æ¸ããã®ã«ã¾ãã«ãªã¼åãæ¨æ¥ã¯C#3.0ã«æè¿è¿½å ãããã«ãªã¼åãæ±ã£ããã©ãå®ã¯.NET2.0ã«ãã«ãªã¼åæ©è½ãããã¾ããæåã«è¨ã£ã¦ããã¨ã¹ãã¼ããããªããã©ããDynamicMethodã使ã£ã¦ããªã²ã¼ãåããéã«ãªãã¸ã§ã¯ãããã¤â¦
Orcas β1ã«ã²ã£ããã¨ã«ãªã¼åã追å ããã¦ãã¾ãããã¤ãã«æ¥ããã¨ãããããã£ã±ãæ¥ããã¨ãããã Extension methods and Curried Delegates ã«ããã°ãæ¡å¼µã¡ã½ãããããªã²ã¼ãã§ã«ãªã¼åã§ããããã«ãªã£ããããªããã ããåç §åã®ã¿ã§å¤åã¯ãã¡ãâ¦
ILã¯ããå°æ°ã®åããæèããªãããã (è¦æ ¼ã®ãã¡ããã¡ãã§æèããåã®æ°ãéããããªâ¦(^^;)ãCLS(å ±éè¨èªè¦å®)ãCTS(å ±éåã·ã¹ãã )ã¯ã³ã³ãã¤ã©ãªã©ã®ILçæå¨ãããã°ãã¨ãããããã æµ·å¤ã®callã¨callvirtã®è¨äº callã¨callvirtãJITã«ãã£ã¦ã©ãâ¦
MSDNã©ã¤ãã©ãªã® Constrained ã®èª¬æã«ããã¨ããé常ãcallvirt å½ä»¤ã¯å¤åã§ã¯æå¹ã§ã¯ããã¾ããããã ããã ãã©ãæ®éã«åãããILã®ä¸çã¯ããããã ã using System; using System.Reflection.Emit; struct Baz { private int n; public int Value {â¦
nullãã¬ãã¨é³´ãããã using System; using System.Reflection.Emit; class Duck { public void Say() { Console.WriteLine( "ã¬ã" ); } } class Class3 { static void Main() { // void Do() ã¡ã½ãããä½ã DynamicMethod dm = new DynamicMethod( "Do"â¦
åãçè ã«ãããªãã¬ã¯ã·ã§ã³ã®ããã©ã¼ãã³ã¹ã®è¨äºãhttp://www.microsoft.com/japan/msdn/msdnmag/issues/05/07/Reflection/default.aspxãªãã¬ã¯ã·ã§ã³ã®ä½ãé ãã¦ä½ãé ããªãã®ããã¾ããã©ãããã°éãã§ããã®ãã¨ãã£ããããããã ãã.NET2.0ã®â¦
http://blogs.msdn.com/joelpob/archive/2004/03/31/105282.aspxããªã²ã¼ãåã¯å¿ é ã§ã¯ãªãã¿ããã
å½é¢ILã¨C#ã¨.NETãªè¨é²ãã¤ã³ãµã¤ããããããªããããã¼ã¯ãµã¤ããããããªãå®é¨è¨ã§ãã å®é¨ï¼ ILã® call 㨠callvirt ã®éããããããããªãã®ã«ããããã£ãèªããã£ã¦ã®ãããããã®ééãã ãªã¨æã£ã¦ãæ¯è¼ããã³ã¼ããæ¸ãã¦ã¿ã¾ããã ããããâ¦
enumã¯åºç¤ã¨ãªãåã«å¥åãä¸ããããã®è¨ãæ¹ã«ãºã¬ã³ã¨ã·ã§ãã¯ãåãããã§ããããè¨ããã¦ã¿ãã°ãã®éãã â¦ããããªèãæ¹ãããã¨ãªãã£ãâ¦ã
以ä¸ã®çµæãäºæ³ãã¦ãã ããã using System; class Program { static void Main() { Console.WriteLine( double.NaN == double.NaN ); Console.WriteLine( double.NaN.Equals( double.NaN ) ); } }
Constrainedã£ã¦ä»®æ³ã¡ã½ããå¼ã¶ã¨ãã«ãã使ããªãã ããªã®ãâ¦ãç´ ç´ã«Call使ãã°ããããææãã§ããã¨æã£ãã®ã«â¦ã
éæ³ããã®ã¨ãã㧠DynamicMethod ç¨ã® DebuggerVisualizer ã®æ å ±ãçºè¦ãæ°ãã¼ã¸ã§ã³ã®IL Visualizerããã£ãã®ã§ããã£ã¡ãå ¥ãã¦ã¿ã¾ããã http://blogs.msdn.com/haibo_luo/archive/2006/11/16/take-two-il-visualizer.aspx ã¤ã³ã¹ãã¼ã«ã¯è¨äºã®ä¸â¦
ããããããä¸é±éãããããã£ã¦ãã®ãï¼éå£ãåºãã©ã¤ãã©ãªãä½ãã®ã¯å¤§å¤ã§ãããã ã§ãæ°ãããã°ãï¼ä»¶è¦ã¤ãã¾ãããåç¾ã³ã¼ãã using System; using System.Collections.Generic; using SioKoshou; interface IDetarame { char Value { get; } â¦
ããªããã«ã¹ã³ããã¬ããã®ã³ã¼ããããããPascalããã£ï¼ http://golf.shinh.org/reveal.rb?128+bits/scottg/1178313234
å大ã ãªãã¨ãæã£ããï½ FastPropertyComparerã§Nullableãç¹å¥ãªãµãã¼ããå¿ è¦ã ã£ã¦ããã£ããã¡ã³ãã¼ã æ®æ®µä½¿ã£ã¦ãã®ã¯Nullableã¸ã§ããªãã¯æ§é ä½ãæ¯è¼ã¯Nullableã¯ã©ã¹ã«ããCompareã public struct Nullable where T : struct public static câ¦
id:siokoshou:20070505 ã®ã³ã¼ãã«ããä¸ã¤åé¡ãããã¾ããã DynamicMethod dm = new DynamicMethod( "Compare", typeof( int ), new Type[] { t, t }, this.GetType() ); (t㯠typeof( T )) ã¨ãã¦ãåçã¡ã½ããã FastPropertyComparer ã¯ã©ã¹ã®ã¡ã½ãâ¦
http://msdn2.microsoft.com/en-us/library/ms745786.aspx ãã¼ã£ã¨â¦ãFastPropertyComparerã¯ãããªãåï¼ orz
FastPropertyComparerã¯ãããã試ãã¦ãããã¡ã«ã¶ãã¶ãã¨å¤§ãããªã£ã¦ãã¾ããã¤ãã§ã«.NETã®ã©ã¤ãã©ãªãæ¡å¼µãããã®ãããªå¤§ããªç®æ¨ã¨ããã¾ã£ã¦ããã¹ãé ç®ã大å¤ãªãã¨ã«ãªã£ã¦ãã¾ã£ã¦ã¾ããMSã®æ³¢æããã®è¦å´ãã¡ãã£ã¨ãããã¾ãã(^^; æ§ã ãªâ¦
ã³ã³ãã¥ã¼ã¿ãµã¤ã¨ã³ã¹å¦ç§åæ¥çã®éåæ°ã¯1ãã100ã¾ã§ã®æ°ãããªã³ãããããã°ã©ã ãæ¸ããªã http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm via ãªã¬ã³ã¸ãã¥ã¼ã¹ 1ãã100ã¾ã§ã®æ°ãããªã³ãããããã°ã©ã ãæ¸ãããâ¦
Ecma-335ãèªãã§ãã System.Threading.Parallel ãªãã¦ã®ããã£ããgoogle:System.Threading.Parallelããã£ã¦ãä¸çã§æ°ä»¶ããåºã¦ããªãâ¦ãParallelForãParallelForEachãParallelWhileãªãã¦ãã£ã¦ãOpenMPã¿ãããsourceforgeã«å®é¨çãªå®è£ ããã£ãâ¦
id:siokoshou:20070505 ã® FastPropertyComparer ã§ãããããããåé¡ããããã§ãã£ã¨ã¾ã¨ããªã®ããã®ãã¡åºãã¾ãã æ°ã¥ãã¦ããåé¡ç¹ IComparable ã¾ã㯠IComparable ãããªã Tåã ã¨ä¾å¤çºç â ToString() ãã¦æ¯è¼ããå¦çã復活ããã string ã®â¦
(ããã«è¿½è¨) ãã®æ¥ã®æ¥è¨ã®ã³ã¼ãã¯ããããåé¡ãããã®ã§ã使ããªãã§ãã ããã詳ãã㯠id:siokoshou:20070507ã (ããã«è¿½è¨çµãã)(追è¨:è¨æ£) ãã¿ã¾ãããæ´¾æã«ééã£ã¦ãã¾ããã 以ä¸ã® FastPropertyComparer ã¯ãåå¥ã®ã¨ã³ãã£ãã£åã«ãããâ¦
id:siokoshou:20070225 ãããã¡ãã£ã¨æ¹è¯ãã¦ã¿ãã®å·»ã CodeZineã§åããã¿ãVBåããã¦ã¾ããã å ãã¿ã¯ãã¡ããhttp://www.microsoft.com/japan/msdn/columns/winforms/winforms02182005.aspx CodeZineã®è¨äºã¯æããã«å ãã¿ãåèã«ãã¦ããã®ã«åèâ¦