ä»æ¥ããã®èŠåã«ã¯äŸå€ããããããã¯äž»ã«ãããã¬ãã¥ãŒã§ã¯ãªããäžèšã®ãæŠéã®åµå¯ãã®çµæã§ãããšããäºå®ã«é¢é£ããŠããŸããããã®åµé ã®éåžžã«å ·äœçãªå°è±¡ãäžããã«ã¯ååãããã»ã©ã§ããã
--------------------------------
æã ãåœå ã®åºç瀟ãç§ãã¡ã«å€¢äžã«ãªã£ãŠãããã¥ãŒã¹ãèŠãŠãå æ¥ãåºç瀟ã®ããŒã¿ãŒãVisual C ++ã«é¢ããã·ãªãŒãºãProgrammer's LibraryãïŒ**ïŒãããMS Visual C ++ 2010 in .NETããšããæ¬ããªãªãŒã¹ããã®ãèŠãŸãããžãããV.V. ãã®ãããªã·ãªãŒãºã§æ¬ãåºçãããšããäºå®èªäœã倧ããªæå³ãæã£ãŠããã®ã§ã泚éãèªãã ããå 容ãç« ã®äžéšãã¹ã¯ããŒã«ãããããã®ãé¢åã§ã¯ãããŸããã§ããã
1.ã¿ã€ãã«ãšèŠçŽ
æ¬ã®ååãšãã®è¡šçŽã¯ãæœåšçãªèªè ãæ¬ã«ç²Ÿéãå§ããã®ã§ãæ¬ããéèŠãªèŠçŽ ã§ãã åæã«ãã¿ã€ãã«ãèªè ãå éšã§æåŸ ãããã®ã®å°ãªããšãæå°éã®ã¢ã€ãã¢ãäžããããšãæãŸãããè¡šçŽãèŠãŠç®ããããããšã¯ãããŸããã ãã®æ¬ã®ã¿ã€ãã«ã¯ãC ++ / CLIïŒããã泚éã§ç¢ºèªãããŠããŸãïŒã«çŠç¹ãåœãŠããšããäºå®ãæ瀺ããŠããŸãããããã¯æ¬ãã¬ã·ãã®ã³ã¬ã¯ã·ã§ã³ã§ãããšããããšã§ã¯ãããŸããã
èè ã®ååã«ããç°¡åãªã°ãŒã°ã«ã¯ããããåå¿ãžãããã®æåã®åµé ã§ã¯ãªãããšãæ確ã«ããŸãã ãã®æ¬ã«å ããŠã圌ã«ã¯ããã«2ã€ã®ã äŸã«ããVisual Basic 2010 ããšã äŸã«ããVisual CïŒ ããããã泚éã®å€§ãŸããªèªã¿ããããã°ããããã¯ç°ãªãè£ ãã§ããã±ãŒãžåããã3人ã®ã¢ã¯ããããå åŒã§ããããšãæããã«ãªããŸãã ããããBHVããŒã¿ãŒãºããŒã°åºç瀟ã«ãã£ãŠåºçããã2ã€ã®ä»¥åã®æ¬ãšã¯ç°ãªããããŒã¿ãŒåºç瀟ã®åå¿ã¯ãããããçš®é¡ã®ãäŸãã§æœåšçãªèªè ãæãããããããåçåãããæ¬ãåœåããããšã決å®ããŸããã
åŒçšïŒ ãèªè ãã€ã³ã¿ãŒãããäžã§èŠã€ããããšãã§ããªãããã°ã©ãã³ã°åé¡ã«å¯Ÿããå€ãã®ç°ãªããªãªãžãã«ã®ãªãŒãµãªã³ã°ãœãªã¥ãŒã·ã§ã³ããããŸããã
泚éã®äœæè ã¯ççŽã«èšã£ãŠzhotã§ãã ç§ã¯ãã¹ãŠãç解ããŠããŸããç§ãã¡ã¯ããããèªåŒµããåŸåããããŸããããã³ãã®ã³ã¬ã¯ã·ã§ã³ã«ã¯ãå ã®èè ã®è§£æ±ºçãããããšããäºå®ã«ã€ããŠæžãéãã§ãã ãšã«ãããã€ã³ã¿ãŒãããã®æ代ã«ãã€ã³ã¿ãŒãããã§ã¯èŠãããªããŠããŒã¯ãªãœãªã¥ãŒã·ã§ã³ã«ã€ããŠèªãããšã¯ã§ããŸããïŒ çµå±ã®ãšãããããããããéåžžã«ãŠããŒã¯ã§ããã°ã圌ãã¯æåãªãœãããŠã§ã¢éçºãã©ãŒã©ã ã®ãã¹ãŠã§ãã©ã³ããããããäžé±éåŸã«ãŠããŒã¯ã§ãªããªãã§ãããã ç§ã¯èªããªããã°ãªããŸããããæ¬ã®ããŠããŒã¯ãªããã³ãã¯çå®ã§ãããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
2.ã³ã³ãã³ã
次ã«ãæ¬ã®ã¿ã€ãã«ãšçã泚éã®åŸã«ç®æ¬¡ããããŸãã å€ãã®å Žåãããã¯æ³šéã§ã¯ãªãç®æ¬¡ã§ãããèªè ã«åœŒãäœãåŸ ã£ãŠããããæ確ã«ããŸãã èªè ã¯ãæ€èšãããŠãããããã¯ã®çµæãšããŠåŸããããã®ãç¹å®ã®ã»ã¯ã·ã§ã³ã«ã©ã®çšåºŠè²»ããããŠãããã«ã€ããŠã®ã¢ã€ãã¢ãåŸãããšãã§ããè°è«ãããŠãããã®ãšæ€èšäžã®è³æã®æ·±ããããæ£ç¢ºã«æ±ºå®ããããšãã§ããŸãã
æ¬ãäŸã«åºã¥ããŠäœæãããŠããå Žåã§ããæ°ããè³æã®èªèãç°¡çŽ åãããããªæ¹æ³ã§ã°ã«ãŒãåããããšãæãŸããã ãããã£ãŠãããšãã°ãããæç¹ã§ãæ°ããæŠå¿µãæå°éã«æããåçŽãªãããã¯ããããè€éãªãããã¯ãŸã§ãæ€èšãã1ã€ã®ç« ã§æãäžè²«ããæŠå¿µãæ€èšããã®ã劥åœã§ãã ããã«ãããèªè ã¯åé¡ã®ãããã¯ã«ãçªå ¥ãããäžå¿ èŠãªè©³çŽ°ãããæœè±¡åãããŠãæãéèŠãªããšã«éäžã§ããŸãã
次ã«ãã³ã³ãã³ããèŠãŠã¿ãŸãããã
第1ç« ç»é¢ãã©ãŒã ãšã³ã³ãããŒã«ãåããæãåçŽãªããã°ã©ã ã
...
äŸ6. CheckBox ã³ã³ãããŒã«ã䜿çšãããã©ã³ãã¹ã¿ã€ã«ã³ã³ãããŒã«
äŸ7.ãããæŒç®åãæä»çORã
äŸ8. TabControl ã¿ã ãš RadioButton ã¹ã€ãã
æåã«ãåçŽãªã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ããã§ã¯ãªãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããæ°ããããã°ã©ãã³ã°èšèªïŒããã³æ³šéã«ãã£ãŠå€æãããšããããæ¬ã®å¯Ÿè±¡èªè ã®1人ïŒãç¥ãæ¹æ³ãæããŠãã ããã æå°éã®åŽåã§ãå®æããã¢ããªã±ãŒã·ã§ã³ããèŠãããšããèªè ã®ã«ããŽãªãŒãããããšã¯ç¥ã£ãŠããŸãããããã¯C ++ / CLIèšèªãšäœã®é¢ä¿ããããŸããïŒ å®éããã®å Žåãèªè ã¯æ°ããããã°ã©ãã³ã°èšèªã ãã§ãªããWin Formsã©ã€ãã©ãªã«ã粟éããŠãããããè³æã®èªèãéåžžã«è€éã«ãªããŸãã
次ã«ããããã¯ã®ã°ã«ãŒãåãããããŸããã ããã§ã¯ããç»é¢ãã©ãŒã ã䜿çšããåçŽãªããã°ã©ã ãã®ç« ã§ããŸãCheckBoxãšTabControlã䜿çšããäŸã®éã§ããããæä»çORããå«ãäŸãèŠã€ããã ãããã ãããŠäžè¬ã«ã圌ãã¯ãããæŒç®åãåãäžããã®ã§ãåé¡ãçµããããŠãããããã¹ãŠèæ ®ããããšã¯ãšãŠãåççã§ãã
第2ç« ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ããã°ã©ãã³ã°...
äŸ12.ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã§ã®å ¥åãšåºå...
...
äŸ14. ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã§ MessageBox :: Show ã¡ãœãããåŒã³åºã ã æ¥ä»ãšæå»ã®åœ¢åŒ... 51
äŸ15. C ++ããã°ã©ã ãã Visual Basic é¢æ° ã åŒã³åºã ...
äŸ16.泚ç®ã«å€ããããŒã¿æ§é ã¯ãèŸæž èŸæžã§ã... 53
æ¬ã®1ããŒã¹ã®ããŒãžïŒç§ã¯ããŒãžçªå·ãå ·äœçã«åŒçšããŸããïŒã§ã貧ããèªè ã«ã©ãã»ã©å€ãã®ç°çš®æ å ±ãå±±ç©ã¿ã«ãªã£ãŠãããæ³åããã®ã¯é£ããã§ãã MessageBoxã®äŸãããã«ã¯ã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ç« ã§ããæ¥ä»ãšæå»ã®åœ¢åŒãèæ ®ããããšã®äŸ¡å€ã¯äœã§ããïŒ ãããŠãC ++ããã°ã©ã ããVisual Basicé¢æ°ãåŒã³åºãã®ã¯äœã§ããïŒ ããã¯æãäžè¬çãªã¿ã¹ã¯ã§ã¯ãªããC ++èšèªã®åŠç¿ãé²ããäžã§äœã®å©ãã«ããªããªãããã«æããŸãã ãŸããäŸ16ã®ååã¯äžè¬ã«ãé»å翻蚳è ã«ãã翻蚳ãäžååãªæ¬ãCïŒin 15 Minutesãã®ãã¬ãŒãºã«äŒŒãŠããŸãã
ãžã§ã³ã¹ããŒãã®æ¬ãCïŒIn Depthããèªã¿ãããçç±ãç¥ã£ãŠããŸããïŒ ç°¡åãªçç±ã1ã€ãããŸãããžã§ã³ã¯äžåºŠã«1ã€ã®æŠå¿µã調ã¹ãŸãïŒåœŒã®èæžã§ãäžåºŠã«1ã¹ãããããšããæåãªãã¬ãŒãºã䜿çšããŠããŸãïŒã ããã«ãããèªè ã¯ç¹å®ã®æéã«äžèŠãªè©³çŽ°ããæœè±¡åãããç¹å®ã®èšèªæŠå¿µã®ç 究ãšããäž»èŠãªããšã«éäžããããšãã§ããŸãã ããã°ã©ãã³ã°ã§ã¯ããœãããŠã§ã¢ã®åºæã®è€éãã«å¯ŸåŠããããã«åžžã«åãããšãè¡ããŸãã çµå±ã®ãšããã1ã€ã®ãšãã»ã³ã¹ã§äºãã«æ¥ç¶ãããŠããªãå€æ°ã®æŠå¿µããã³ãããå Žåãã質éããååŸããããšãä¿èšŒãããŸãã
第12ç« Windows ã¢ããªã±ãŒã·ã§ã³ ã䜿çšãããã®ä»ã®ã¿ã¹ã¯
äŸ98.ãã©ãŒã ã®éæ床ã管çãã
äŸ99.åéæã®GMT
äŸ102.ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ãµãŠã³ãã®åç
ç¹å®ã®ãããã¯ã«å°å¿µããŠããç« ã«é£èºããã£ãå Žåããã®ç« ã«ã€ããŠã¯ã©ãã§ããããã é³ã®åçïŒã¡ãªã¿ã«ãéåžžã«çããããããã¯ã§ããããŸãïŒãã°ãªãããžæšæºæã®æ¬¡ã«èæ ®ãããåéæã®åœ¢ã§ãã£ãŠããå°ãªããšãç¬é¡ãåŒãèµ·ãããŸãã äžéæãªåœ¢åŒã§ããŸãã¯åœ¢åŒãªãã§GMTæéãååŸããããšã¯æ¬åœã«äžå¯èœã§ããïŒ
第2ç« ãã第12ç« ãŸã§ã®éã«ãèè ã¯TroelsenãçŽ1,000ããŒãžåã£ãã»ãŒãã¹ãŠã®ãããã¯ãæ€èšããŸãããã¡ã€ã«ã®æäœããå§ãŸããADO.NETãã¯ãããžã§çµãããAutoCADæ©èœã®äœ¿çšãšPDFãã¡ã€ã«ã®äœæã§ãã ã©ããããAutoCADãšã®ããåãã¯ã¢ãããŒã·ã§ã³ã§èšåãããŠãããããæ¬åœã«ãã©ãŒãªæ©èœã§ãããäœããã®çç±ã§ããã¯ããã»ã©é »ç¹ãªäœæ¥ã§ã¯ãªãããã§ããããŸããããã¯å¥œã¿ã®åé¡ã§ãã ã©ãã ããæ£ç¢ºã«ã¯ã1ã€ã®ç« ã«æ»ããå¥ã®ã»ã¯ã·ã§ã³ãäœæããŸãã
3.第11ç« LINQ ãã¯ãããžãŒã®äœ¿çš ã
ãã®ç« ã«ã¯ã2ã€ã®çç±ããå¥ã®ã»ã¯ã·ã§ã³ãå¿ èŠã§ãã ãŸããC ++ / CLIã«ã¯ãå¿åããªã²ãŒããäœæããããã®æ§æäžã®ç ç³ããããŸããïŒC ++ 0xã©ã ãã¯ã«ãŠã³ããããŸãããããã¯ãŸã£ããç°ãªãåé¡ã§ãïŒãããã«ãããLINQã®äœ¿çšãéåžžã«é£ãããªããŸãã 次ã«ããã®ç« ã¯åºç瀟ã®ãŠã§ããµã€ãã®ãããªãã¯ãã¡ã€ã³ã«ãããããã³ã³ãã³ãã ãã§ãªãã³ã³ãã³ãã«ã粟éããããšãã§ããŸãã
ããã«ããããããããã®æ¬ã¯äŸã®éåã§ããã®ã§ããããã®1ã€ã®å§ãŸããããã«èª¿ã¹ãŠã¿ãŸãããïŒ
bool ( String ^ S)
{
// , true:
bool A = false ;
if (S->Length == 6) A = true ;
return A;
}
String ^ 2( String ^ S)
{
// :
S = S->ToUpper();
return S;
}
* This source code was highlighted with Source Code Highlighter .
ãããã£ãŠã泚éã¯ããã®æ¬ã¯ãåå¿è ãäžçŽã¬ãã«ã®ããã°ã©ããŒãããã³ä»ã®èšèªã§éçºããçµéšããããæ°ããMS Visual C ++ / CLIèšèªããã°ããç¿åŸãããããã°ã©ããŒã察象ãšããŠããŸãããšè¿°ã¹ãŠããŸãã ããããããã§ã¯12è¡ã®ã³ãŒãã«ãåããã®æããããŸãã
- ãã·ã¢èªã®ååã®äœ¿çš ã
- é¢æ°ããã³å€æ°ã®éæçãªååã®äœ¿çš ; 決ããŠã決ããŠã決ããŠããããããªãã¯ç解ããŠããªãã£ããã ãã®ããã«é¢æ°ãå€æ°ã®ååãä»ãããããªãã£ã ã äŸã«ããååšããæš©å©ããªãã®ã¯ã§ãããã§ãïŒ ãããããããšã«ããã®æ¬ã®æåã®ã»ã¯ã·ã§ã³ã¯ãããšåŒã°ããŠããŸãã ãè¯ãããã°ã©ãã³ã°ã¹ã¿ã€ã«ããšã¯äœã§ããã ãæããã«èè
ã¯æåŸã®3ã€ã®åèªãæå³çã«åŒçšããã Predicateããã³Predicate2ãšããååã¯äœã§ããïŒå€æ°Aã®ååã¯èªè
ã«ã©ã®ããã«åœ¹ç«ã¡ãŸããïŒ
- ãã©ã¡ãŒã¿ã®å€ãå€æŽããŸã ã ãªã³ã¯ã®å€èªäœãæž¡ããããããã³ãŒããªãŒããŒã¯Predicate2ã¡ãœããã®å
ã®ãªããžã§ã¯ãSãå€æŽãããŠããªãããšãæ確ã«ç解ããå¿
èŠãããããããã©ã¡ãŒã¿ãŒã®å€ãå€æŽããã®ã¯äžé©åãªæ¹æ³ãšèŠãªãããŸãã
- ç¡å¹ãªåœåã¹ã¿ã€ã« ãã£ã¡ã«ã±ãŒã¹ã®åœ¢åŒã§.Netç°å¢ã®ãã©ã¡ãŒã¿ãŒãšããŒã«ã«å€æ°ãåŒã³åºãã®ãæ £ç¿ã§ããã SãAã®ãããªååã¯ãã®èŠåã«ççŸããŸãã
- Predicate2ã¯è¿°èªã§ã¯ãããŸãã ã ããšãã°ãè¿°èªã¯trueãŸãã¯falseãè¿ããããªããããã§ãããšãã€ãæã£ãŠããŸããããã¯ã€ãã¯ã°ãŒã°ã«ã¯ãã®æèŠã確èªããŸãã
ã¡ãœããã®è¡æ°ã3è¡ãã1è¡ã«æžããããšãã§ãããšã¯èšã£ãŠããŸããã
bool LengthEqualToSix( String ^ s)
{
return s->Length == 6;
}
* This source code was highlighted with Source Code Highlighter .
次ã«ãEnumerableã¯ã©ã¹ã®éçã¡ãœããã䜿çšããŠãããããã¹ãŠã®ãè¿°èªãã䜿çšããŸãã ãã ããC ++ / CLIèšèªã«ã¯æ¡åŒµã¡ãœãããã¡ãœããã°ã«ãŒãå€æãªã©ã¯ãªããããããã¯æé©ãªæ¹æ³ã§ã¯ãããŸããã
// , - :
auto = Enumerable::Where< String ^>(, gcnew
Func< String ^, bool >());
// :
= Enumerable::OrderBy(, gcnew
Func< String ^, String ^>(2));
* This source code was highlighted with Source Code Highlighter .
ãã£ãŒã«ãã«bool Smokesãšããååãå®çŸ©ãããªã©ãä»ã®çç ããããŸãã Employeeã¯ã©ã¹ã§ããŸãã¯Enumerableã¯ã©ã¹ã®ã¡ãœããã䜿çšããåã«åŸæ¥å¡ã®é åã«ãã£ãŠåŸæ¥å¡ã®ãªã¹ããäœæããŸã ïŒæããã«ãèè ã¯ã Enumerableã¯ã©ã¹ã®éçã¡ãœãããã·ãŒããšåãæ¹æ³ã§é åã«é©çšã§ããããšãç¥ããŸããïŒ; ããã³æ¬¡ã®åœ¢åŒã®è¿°èªïŒ
bool ( S)
{
// , :
bool A = false ;
if (S. == false ) A = true ;
return A;
// :
// return !S.;
//
}
2( t)
{
return t;
}
* This source code was highlighted with Source Code Highlighter .
èè ã代æ¿ãšã³ããªã奜ãŸãªãã£ãçç±ãšããªãMonthåã®å€æ°ãtãšåŒã°ãããªããã®å Žåã®ã¿å€æ°åãå°æåã§æžãããŠããã®ããç§ã«ã¯ããããŸããã
ãããã«
æ£ããç解ãããïŒ1åã®æ¬ãæžããç°ãªãããã°ã©ãã³ã°èšèªã®äŸã䜿çšããŠè€è£œããèè ã«ã€ããŠäžæºã¯ãããŸããã ãããŠããã®æ¬ã®è¡šçŽãããé»è²ã§ã·ãªãŒãºãFor Dummiesãã§åºãŠããå Žåãåºç瀟ã«è³ªåã¯ãããŸããã ããããSpolskyãBoxingãHuntãMcConnellããã®ä»å€ãã®æåãªäžçã®å°é家ã®æåãªäœåã®é£ã«ãã人æ°ã®ããæåãªã·ãªãŒãºã§SUCHããªãªãŒã¹ããããšã¯ç¯çœªã®ããã§ãã
Guysã®åºç瀟ãããã°ã©ãã®ã©ã€ãã©ãªã§æ£åœãªäœçœ®ãå ããããšãã§ããC ++ / CLIèšèªã®æžç±ãå«ãã.Netãã©ãããã©ãŒã ã§ã®ããã°ã©ãã³ã°ã«é¢ããèå³æ·±ãæ¬ããããããããŸããããã®æ¬ã¯æããã«ãããã®1ã€ã§ã¯ãããŸããïŒ***ïŒã
èªè ã«ãªãå¯èœæ§ã®ãã人ã«ã€ããŠã¯ãç§ã¯åœŒããã®æ¬ã«èŠãããŸãããæ¬ã®äŸã¯åå¿è ã§ã䜿çšããã«ã¯äœå質ã§ããããã¬ãŒã·ã§ã³ãçŽ æã®ã°ã«ãŒãåã®ã¹ã¿ã€ã«ã¯ãæºåã®ã§ããŠããªãèªè ã®é ã«ã»ãšãã©æ®ããŸããã æºåãã§ããŠããèªè ã¯ããã®æ¬ãããã°ã©ãã³ã°æ¬ã§ã¯ãªããŠãŒã¢ã©ã¹ãªæ¬ãšããŠæ±ããŸãã
ã¯ããç§ã¯é·ãéæ¢ãåããªãããšãã»ãšãã©å¿ããŠããŸããã ããã«å 容ããããŸãããããã«ç« ã®æçããããŸã ã
---------------
ïŒ*ïŒç§ã®ãã¹ãŠã®ã¬ãã¥ãŒãããã³ããã€ãã®ã¬ãã¥ãŒãšæ¬ã®çºè¡šã¯ã ããã«ãããŸã ã
ïŒ**ïŒãã®ã·ãªãŒãºã§ã¯ãEckelã®Java PhilosophyãMartinã®Clean CodeãGang Four Design Patternsãªã©ãåªããæžç±ãåºçãããŠãããšèšããããåŸãŸããã ã€ãŸããããã¯ã倢ã®äžã§15åéã§äžçã®ãã¹ãŠãåŠã¶ãã®ãããªã·ãªãŒãºã§ã¯ãªããéåžžã«æ·±å»ãªæ¬ã®ã·ãªãŒãºã§ãã
ïŒ***ïŒ.Netãã©ãããã©ãŒã ã§ããã°ã©ãã³ã°ã«é¢ããæžç±ãæ€çŽ¢ããéã®åºçºç¹ãšããŠã次ã®ãªã¹ãããéå§ã§ããŸããCïŒ/ãNETã®å€å žæžç± ã