2012から見える「デスクトップ世界の終焉」」において以下のような誤りがありました。お詫びして訂正させていただきます。7.1.1へのアップデート)【5月11日】「F#言語の基礎文法」において以下のような誤り(=記事中の関数factが階乗にならない誤り)がありました。お詫びして訂正させていただきます。1)である「120」ではなく、「4」が表示されたはずだ。1)である「120」ではなく、「20」が表示されたはずだ。WebSocketを使いこなそう」において以下のような誤りがありました。お詫びして訂正させていただきます。追記WebSocketプロトコルはラストコール以降も改訂が勧められ、2011年11月の段階でhybi-17まで改訂が進んでいる。WebSocketを使いこなそう」において以下のような誤りがありました。お詫びして訂正させていただきます。以下の表はセキュリティ・ホールを解決したDraft(draft-ietf-hybi-thewebsocketprotocol-10)以降のDraft(=仕様の草案)に対応しているブラウザだ。Groupから、WebSocketの草案がラストコール(=最終勧告)として公開されている。以下の表はWebSocketプロトコルのラストコール(=最終勧告)となるDraft(draft-ietf-hybi-thewebsocketprotocol-07)以降のDraft(=仕様の草案)に対応しているブラウザだ。APIの草案もラストコールとして公開されている。2011年11月の段階ではFirefoxでWebSocketを利用する際にWebSocketではなく、「MozWebSocket」と記載する必要がある。WPFアプリケーション・チューニング」の「●DataGridコントロールにおける「UIの仮想化」」において以下のような誤りがありました。お詫びして訂正させていただきます。4の標準の(WPFの)DataGridコントロールにもVirtualizingStackPanelの添付プロパティであるVirtualizationModeとIsVirtualizingがあるが、そのほかに、テーブルの列と行に対する仮想化を有効化するためのプロパティであるEnableColumnVirtualizationとEnableRowVirtualizationがある。これらのプロパティを以下のように変更して、再度プロセスを起動して計測する。誤このように、DataGridコントロールにおいても「UIの仮想化」を行うことで、その性能に改善が見られる。これでも時間がかかっている。4標準の(WPFの)DataGridコントロールでは、UI仮想化は行方向のみに対して行われており、列方向には行われないからだ。正DataGridコントロールにおいても「UIの仮想化」を行うことで、性能に改善が見られる。筆者が試した範囲では、速くなるときは今回の例のように半分程度の負荷になるが、遅くなるときはUI仮想化を行っていないときとほとんど変わらない速度になることもあった。上に示した画面ではほとんど速度差がないように見えるが、今回のような描画性能の測定を行うときは複数回採取して確認してほしい。データ処理用のメソッド比較表」において以下のような誤りがありました。お詫びして訂正させていただきます。誤scanLeft正foldLeft訂正ScalaにもgroupByがある訂正rubyは1.9系でflat_mapが追加された【5月14日】「Windowsフォーム・アプリケーションの配布方法」において以下のような誤りがありました。お詫びして訂正させていただきます。誤インストーラ作成時だけではなくインストーラ実行時にも英語表記なので、配布先によってはそれだけで利用できなくなることもある。早急に改善してもらいたい問題点だ。正デフォルトの設定では、インストーラ作成時だけではなく、インストーラ実行時にも英語表記になってしまう。日本語」に変更すればよい。このプロパティ設定を行ったインストーラは、次の画面のように日本語表記になる。Touch」の説明において以下のような誤りがありました。お詫びして訂正させていただきます。商用ライセンス(3万1395円から。※2011年4月1日時点)を購入する必要がある。商用ライセンス(無料。※2011年4月1日時点)を購入する必要がある。キャストとデータ変換」において以下のような誤りがありました。お詫びして訂正させていただきます。見て分かるとおり、実数から整数にキャストで変換する場合は、「その値を超えない最大の整数に変換される」ということになる。Basicプログラマーなどは要注意である。見て分かるとおり、実数から整数にキャストで変換する場合は、「小数点以下を切り捨てる」ということになる。Basicプログラマーなどは要注意である。UI要素の基礎とレイアウト用のパネルを学ぼう」において以下のような誤りがありました。お詫びして訂正させていただきます。Freezableクラスは、オブジェクトの状態を固定(freeze)して読み取り専用にできる(読み取り専用/書き込み可能を切り替えられるので、不変(immutable)ではなく固定可能(freezable)と呼ぶ)。Freezableクラスは、オブジェクトの状態を固定(freeze)して読み取り専用にできる(書き込み可能なものを途中から読み取り専用に切り替えられるので、不変(immutable)ではなく固定可能(freezable)と呼ぶ)。2010で社内C/Sシステム開発(前編)」において以下のような誤りがありました。お詫びして訂正させていただきます。「【コラム】Gridパネルのセルにコントロールを追加する方法」を追記しました。「Gridパネルを新規に追加するには、WPFデザイナへドラッグ&ドロップ」といきたいところなのだが、残念ながらまだWPFデザイナがこれに完全に対応していないようだ(目的のセルではなく、<Grid>要素全体に対して、コントロールが追加されてしまう。今後の機能改善に期待したい)。「Gridパネルを新規に追加するには、WPFデザイナへドラッグ&ドロップ」といきたいところなのだが、Gridパネル内の目的のセルにコントロールを追加するには少しコツが必要だ(この方法は、後述の「【コラム】Gridパネルのセルにコントロールを追加する方法」で説明する)。【11月28日】「特集:初めてのWPF/Silverlightデータグリッド開発」において以下のような誤りがありました。お詫びして訂正させていただきます。http://localhost:<ポート番号>/Services/<Webアプリケーション・プロジェクト名>-<ドメイン・サービス・クラス名>.svc/binary/(例:http://localhost:37494/Services/DataGridSampleSL-Web-DomainService1.svc/binary/)(ちなみに、「http://localhost:37494/Services/DataGridSampleSL-Web-DomainService1.svc」にもアクセスできる。外部コンポーネント活用術」の「全文検索エンジン『Lucene.Net』を使う」で配布しているJapaneseAnalyzerというライブラリにおいて、メモリ・リークを引き起こす不具合がありました。お詫びして修正したプログラムを配布させていただきます。この不具合は、読者により報告されたもので、その読者により詳しい情報が提供されていますので、併せてご参照ください。【04月13日】「開発者が知っておくべきIE9の新機能」において以下のような誤りがありました。お詫びして訂正させていただきます。Platformの料金体系」において以下のような誤りがありました。お詫びして訂正させていただきます。Azureコンピュートへの課金が発生するのは、ロール・インスタンスが実行されている時間である。Azureポータルで、ロール・インスタンスの[実行(Run)]ボタンを押したときから、[停止(Suspend)]ボタンもしくは[削除(Delete)]ボタンを押したときまでの時間である。Azureポータルにロール・インスタンスが配置(Deploy)されている時間である(※ただし、課金発生は筆者が試して検証したわけではない。Servicesカスタマー・ポータルにお問い合わせいただきたい)。TIPS:SHA-1/SHA-2/MD5ハッシュ値を計算するには?」において以下のような誤りがありました。これに伴い、RIPEMD160クラスとRIPEMD160Managedクラスに関する記述を追加しました。お詫びして訂正させていただきます。Frameworkでは次の6つのハッシュ・アルゴリズムが利用できる。Frameworkでは主に次の6つのハッシュ・アルゴリズムが利用できる。TIPS:SHA-1/SHA-2/MD5ハッシュ値を計算するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。以上のようにさまざまなハッシュ・アルゴリズムの選択肢があるわけだが、現時点での対応OSや安定性、利便性などを総合的に考えると、やはりサンプルで示したSHA256CryptoServiceProviderクラスが最も使い勝手がよいだろう。以上のようにさまざまなハッシュ・アルゴリズムの選択肢がある。CSPについては、すべてのOSですべてのアルゴリズムが利用できるわけではない。XPには対応していないので注意してほしい(対応OSについて詳しくは、MSDNのページを参照してほしい)。Platformの新機能」において以下のような誤りがありました。お詫びして訂正させていただきます。部分クラスと静的クラス」の練習問題の選択肢において以下のような誤りがありました。お詫びして訂正させていただきます。control」を「並行制御」と訳していましたが、これは「同時実行制御」の方が適切であるため、お詫びして訂正させていただきます。TIPS:コンソール・アプリケーションの強制終了時に処理を行うには?(Win32編)」のサンプル・プログラムにおいて、ガベージ・コレクション発生時に正しく動作しないという問題が見つかりました。このため、SetConsoleCtrlHandler関数の引数部分でインスタンス化していたハンドラのデリゲート・オブジェクトを、クラスのフィールドに保持するように修正しました。お詫びして訂正させていただきます。3DのX軸、Y軸、Z軸と正の回転の方向」という図において、図版の制作ミスにより、Y軸の回転方向が逆になっていました。お詫びして訂正させていただきます。Database開発入門(後編)」において以下のような誤りや誤解を与えかねない表現がありました。お詫びして訂正させていただきます。Server認証にはパスワードの複雑さチェックや有効期限などのセキュリティ・ポリシーが設定できないため、Windows統合認証の採用が推奨されている。Databaseにも、以下のような方式があるが、データベース認証でもセキュリティ・ポリシーが設定できる。基本的にWindows統合認証の採用が推奨されている。Server認証でもWindowsパスワード・ポリシー・メカニズムというOS標準搭載の機能を活用したパスワード・ポリシーおよびパスワードの期限の設定が行える。Databaseにも以下のような方式があり、データベース認証でも独自のセキュリティ・ポリシーが設定できる。以降を利用していれば、前述したパスワード・ポリシーを設定可能である。行レベル・ロックが既定値のため、レコードという扱いやすいロック単位でシステムが動作する。Serverにおいては行レベル・ロックが既定値で、一定の条件下ではロック管理を効率化するための「ロック・エスカレーション」が発生する。Databaseでは行レベル・ロックは既定値であるが、ロック・エスカレーションは行われない。Databaseのエディション」において以下のような誤りがありました。お詫びして訂正させていただきます。Edition:」の「最大メモリ」が「3GB」となっていました。SP1概説」Page1の「共有フォルダ上からのWindowsアプリケーションのフル権限実行」において以下のような誤りがありました。お詫びして訂正させていただきます。画面や説明がイントラネット・ゾーンではなく、インターネット・ゾーンになっていました。正イントラネット・ゾーン上の動作内容に、画面と説明を修正しました。4リリース(パート1)において、以下のような誤りがありました。Sourceにて公開されています。それでもやっぱり『プログラミングは楽しい!』」Page3の「Page_Loadイベント・ハンドラに記述する内容」において以下のような誤りがありました。お詫びして訂正させていただきます。誤ポストバックの判定処理がない。正ポストバックの判定処理が必要。{」を追加し、コードの末尾に「}」を追加する必要がありました。変数の宣言とスコープ」Page3のリスト14内のコメント文、およびリスト14に続く1文において、「関数リテラル」と「Functionコンストラクタ」の表記が逆になっている個所ありました。お詫びして訂正させていただきます。結果を見ても分かるように、関数リテラルはグローバル変数numを参照しているのに対して、Functionコンストラクタがローカル変数numを参照しているのだ。結果を見ても分かるように、Functionコンストラクタはグローバル変数numを参照しているのに対して、関数リテラルがローカル変数numを参照しているのだ。3.5概要(前編)」において以下のような誤りがありました。お詫びして訂正させていただきます。Systemの関係は若干変更されている。2008の枠組みの中に組み入れられる。2008」という枠組みの中で並列に並ぶようになる。正(記述を削除しました。TIPS「ClickOnceのデジタル証明書を更新するには?」において以下の文を追記しました。お詫びして訂正させていただきます。文なお、読者からの問い合わせによると、VeriSignなどが発行した証明書を更新しても同様のエラーが発生することがある。TIPS「ClickOnceのデジタル証明書を更新するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤このエラーを回避するには、デジタル証明書を更新して有効期限を延ばすしかない。Certificate)を用いて新しいデジタル証明書を発行し、有効期限を延ばす必要がある(※このとき、最初に作成したときと同一の秘密鍵ファイルと公開鍵ファイルを使わないと、デジタル証明書が一致しないというエラーになり、クライアントPCからClickOnceアプリをアップデートできないので注意すること)。2005でデジタル証明書を新たに作り直すと、「デジタル証明書が一致しない」というエラーになり、クライアントPCからClickOnceアプリをアップデートできないので注意すること)。Studio年表」において、「2008年」の欄に以下のような誤りがありました。お詫びして訂正させていただきます。3.5と同時期に提供開始される予定です。2008(前半予定)【3月31日】特集:C#&VBジェネリック超入門(前編)「ジェネリック・クラスで変わるC#とVBのコレクション」において以下のような誤りがありました。お詫びして訂正させていただきます。実際には、ジェネリックはコレクション(コレクション・クラス)を便利に利用/実装するための仕組みといえます。コレクションとは、複数のオブジェクトをまとめて管理するためのもので、代表的なものにリストやハッシュテーブルなどがあります(リストは配列と操作方法が似ていますが、リストがサイズ固定なのに対してリストはオブジェクトをいくつでも追加できます)。実際には、ジェネリックはコレクション(コレクション・クラス)を便利に利用/実装するための仕組みといえます。コレクションとは、複数のオブジェクトをまとめて管理するためのもので、代表的なものにリストやハッシュテーブルなどがあります(リストは配列と操作方法が似ていますが、配列がサイズ固定なのに対してリストはオブジェクトをいくつでも追加できます)。2.0を特徴づけるDI機能とは」において以下のような誤りがありました。お詫びして訂正させていただきます。360で.NETとC#による自作ゲームを動かそう」において以下のような誤りがありました。お詫びして訂正させていただきます。ClickOnceが持つセキュリティ機構とは?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤これを利用すれば、プログラムによってClickOnceアプリが実行される前に「信頼されたアプリケーション」一覧にそのアプリケーションを登録することも可能である。そのようにすれば、以下で説明するTrustManagerによるセキュリティ検証処理はスキップされて、即座にアプリケーションを起動できる。正なお、ClickOnceアプリが実行される前に、プログラムによって「信頼されたアプリケーション」一覧にそのアプリケーションを登録しても、それが実際にローカル・ディスクにインストール/ダウンロードされていなければ、以下で説明するTrustManagerによるセキュリティ検証処理が実行される。.NET開発者のためのDirectX連携手法」において以下のような誤りがありました。お詫びして訂正させていただきます。10?」を参照のこと。10?」を参照のこと。TIPS「ClickOnceアプリをコマンドラインから発行するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。TIPS「文字列がnull(Nothing)か空文字列かを簡単に判定するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤String.IsNullOrEmptyメソッドは静的メソッドとして実装されており、パラメータで受け取った文字列がnull(Nothing)もしくは空文字列の場合に戻り値としてFalseを返し、null(Nothing)でも空文字列でもなければTrueを返すという仕様になっている。正String.IsNullOrEmptyメソッドは静的メソッドとして実装されており、パラメータで受け取った文字列がnull(Nothing)もしくは空文字列の場合に戻り値としてTrueを返し、null(Nothing)でも空文字列でもなければFalseを返すという仕様になっている。ClickOnceの仕組みを理解しよう」において以下のような誤りがありました。お詫びして訂正させていただきます。誤(2)ネットワーク上から起動するモードのClickOnceアプリに対しては、ClickOnceキャッシュ領域はデフォルトで250MBytesが割り当てられている(なお、(1)インストールするモードではこの制限はない)。正(2)ネットワーク上から起動するモードの部分信頼のClickOnceアプリに対しては、ClickOnceキャッシュ領域はデフォルトで250MBytesが割り当てられている(なお、(2)のモードの完全信頼のClickOnceアプリや(1)のモードでは、この制限はない)。TIPS「ClickOnceオンライン・キャッシュ領域をクリアするには?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤(2)のモードにおけるオンライン・キャッシュ領域は、デフォルトで250Mbytesが割り当てられている(※(1)のモードではこの制限はない)。正(2)のモードで部分信頼アプリケーションとして実行する場合のオンライン・キャッシュ領域は、デフォルトで250Mbytesが割り当てられている(※(2)のモードの完全信頼アプリケーションや(1)のモードではこの制限はない。ClickOnceの仕組みを理解しよう」を参照してほしい)。TIPS「ClickOnceのログ・ファイルを特定の場所に作成するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。2.0を特徴づけるDI機能とは」において以下のような誤りがありました。お詫びして訂正させていただきます。Systemのものとなっておりました。Editionにはこの分類は含まれておりません。Editionには当てはまりません。以上、お詫びして訂正させていただきます。Office)が標準で搭載された点も注目だ。VSTOとは、Officeドキュメントから.NETのアセンブリを呼び出し、実行する仕組みである。2005版のVSTOでは、Officeドキュメント自体をVS上で編集できる、Windowsフォームのコントロールを利用できるなど、開発生産性を向上させるさまざまな新機能が追加された。2005でより開発が行いやすくなったことで、今後に期待できるソリューションだ。9.0」において、以下の部分に誤りがありました。VB.NETでは型文字が指定されていない場合、Integer型の範囲内の値はInteger型となります。Integer型同士の「/」による除算はDecimal型に変換されて計算されます。お詫びして削除させていただきます。VBでは、次のコードの結果は「0.333333333333333」になる。VBではリテラルの数値はDouble型になっている。1」と書いて変数xをDouble型にすることはできない。川俣流XMLプログラミングの定石(2)」において以下のような誤りがありました。お詫びして訂正させていただきます。速度を重視するなら「参照直前に行う」方法がベターであり、未知の要素や属性が保存されることを重視するなら「参照直前に行う」方法がベターであるといえる。速度を重視するなら「解析直後に行う」方法がベターであり、未知の要素や属性が保存されることを重視するなら「参照直前に行う」方法がベターであるといえる。誤XmlReader/XmlWriterを使う場合は、「解析直後に行う」方法のみが使え、「解析直後に行う」方法の使用は困難であることに注意が必要である。正XmlReader/XmlWriterを使う場合は、「解析直後に行う」方法のみが使え、「参照直前に行う」方法の使用は困難であることに注意が必要である。誤たいていは「解析直後に行う」方法と「解析直後に行う」方法の2種類の定石を持っているだけで事足りるように思う。正たいていは「解析直後に行う」方法と「参照直前に行う」方法の2種類の定石を持っているだけで事足りるように思う。.NETアプリケーションを動かす土台」において以下のような誤りがありました。お詫びして訂正させていただきます。TIPS「モーダル・ダイアログやモードレス・ダイアログを表示するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤ShowDialogメソッドの戻り値は、ダイアログの処理結果を示すためにDialogResultプロパティで設定しておいた値である。このDialogResultプロパティの値には、DialogResult列挙体の値が使われる。モーダル・ダイアログの[閉じる]ボタンであるButtonオブジェクトをDialogオブジェクトのAcceptButtonプロパティに設定しておけば、ダイアログが閉じられたあと、ShowDialogメソッドの戻り値としてDialogResult.OKが返されるようになる。この場合には、[閉じる]ボタンのClickイベント・ハンドラを実装する必要がなくなる。[キャンセル]ボタンの場合も同様に、CancelButtonプロパティを設定しておけば、ダイアログが自動的に閉じられたあと、ShowDialogメソッドの戻り値としてDialogResult.Cancelが返されるようになる。これらのAcceptButtonプロパティやCancelButtonプロパティが有効に機能するのは、モーダル・ダイアログの場合だけである。次に紹介するモードレス・ダイアログでは機能しないので注意が必要である。正ShowDialogメソッドの戻り値は、ダイアログの処理結果を示すためのもので、Dialogオブジェクト(=フォーム)のDialogResultプロパティの値である。このDialogResultプロパティの値には、DialogResult列挙体の値が使われる。モーダル・ダイアログ上のButtonオブジェクト(本稿の例では、[閉じる]ボタン)を、DialogオブジェクトのAcceptButtonプロパティに設定すれば、ユーザーがフォーム上で[Enter]キーを押したときに、そのボタンのクリック処理が実行されるようになる。CancelButtonプロパティを設定しておけば、ユーザーがフォーム上で[Escape]キーを押したときに、そのボタンのクリック処理が実行されるようになる。ボタンのDialogResultプロパティに、「DialogResult.Cancel」や「DialogResult.OK」などのDialogResult列挙体の値が設定されている場合、そのボタンがクリックされるとDialogオブジェクトのDialogResultプロパティに対してそのDialogResult列挙体の値が設定される。モーダル・ダイアログでは、DialogオブジェクトのDialogResultプロパティに「DialogResult.None」以外の値が設定されると、自動的にダイアログが終了する仕組みになっている。このため、ボタンのDialogResultプロパティを設定すれば、ボタンのClickイベント・ハンドラでダイアログの終了処理を実装する必要はない(ただし次に紹介するモードレス・ダイアログの場合は、Closeメソッドなどによるダイアログの終了処理が必要となる)。DialogオブジェクトのCancelButtonプロパティを設定すると、設定されたボタンのDialogResultプロパティに「DialogResult.Cancel」が自動的に設定される(ただし、この自動設定が行われるのは、ボタンのDialogResultプロパティの値が「DialogResult.None」の場合のときだけだ)。AcceptButtonプロパティを設定した場合では、設定されたボタンのDialogResultプロパティの値は変更されないので注意してほしい。ちなみに、モーダル・ダイアログで、フォーム上部のタイトル・バーにある[×]ボタン(=[閉じる]ボタン)をクリックしてダイアログを閉じた場合、DialogオブジェクトのDialogResultプロパティには「DialogResult.Cancel」が固定的に設定される。TIPS「ハッシュテーブル(連想配列)を使うには?」において以下のような誤りがありました。お詫びして訂正させていただきます。指定したキーがハッシュテーブル(この例ではht)に存在しない場合には、新しい要素として登録される。キーがすでに存在する場合には、それに対応する値が置き換えられる。指定したキーがハッシュテーブル(この例ではht)に存在しない場合には、新しい要素として登録される。キーがすでに存在する場合には、インデクサではそのキーに対応する値が置き換えられるが、Addメソッドでは例外が発生する。TIPS「ファイルやディレクトリの一覧を取得するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤まずDirectoryクラスのメソッドでは、次のようにして検索を行える。"??");この例では、上から順に、“Microsoft”を含むディレクトリ、拡張子が“.cs”のファイル、名前が2文字以内のディレクトリかファイルを、Cドライブのルート・ディレクトリから検索する。同様に、DirectoryInfoクラスを使用する場合の記述例は次のようになる。di.GetFileSystemInfos("??");正まずDirectoryクラスのメソッドでは、次のようにして検索を行える。"??");この例では、上から順に、拡張子が“.cs”のファイル、“Microsoft”を含むディレクトリ、名前が2文字以内のディレクトリかファイルを、Cドライブのルート・ディレクトリから検索する。同様に、DirectoryInfoクラスを使用する場合の記述例は次のようになる。di.GetFileSystemInfos("??");。継承と属性プログラミングで実現するRAD開発」において以下のような誤りがありました。お詫びして訂正させていただきます。誤このMenuButton.MenuButtonDesignerクラスの具体的な実装内容は次のとおりだ。正このMenuButton.MenuButtonDesignerクラスの具体的な実装内容は次のとおりだ(なおこのクラスをビルドするには、あらかじめ「System.Design.dll」への[参照の追加]が必要)。TIPS「Windowsフォーム上のコントロールの位置やサイズを固定するには?」において以下のような誤りがありました。お詫びして訂正させていただきます。一部のコントロールだけを指定してロックすることは(IDEのWindowsフォーム・デザイナの仕様上)残念ながらできないようだ。一部のコントロールだけを指定してロックするには、IDEのWindowsフォーム・デザイナでコントロールを選択して、[プロパティ]ウィンドウでLockedプロパティの値を「True」に指定すればよい。誤IDEのWindowsフォーム・デザイナはフォーム上のすべてのコントロールの<コントロール名>.Lockedの値を一括して「True」「False」に設定してしまうが、このリソース・エディタを使えば特定のコントロールのみをロックすることも可能だ。そのようなコントロールのロック状態はIDEで想定されていないと思われるため、何らかの問題が生じないとも限らない。従って筆者は、そのような設定を行うことをお勧めしない。正IDEのWindowsフォーム・デザイナはフォーム上のすべてのコントロールの<コントロール名>.Lockedの値を一括して「True」「False」に設定する仕様となっている。個別のコントロールをロックしたい場合には、[プロパティ]ウィンドウでそれぞれのコントロールのLockedプロパティを「True」に指定する必要がある。変化」において以下のような誤りがありました。お詫びして訂正させていただきます。593,543,950,335までの値を扱う固定小数点数値であるが、小数部の桁数は1つに決まっておらず、必要に応じて小数点の位置を変えていく仕組みのようである。593,543,950,335までの値を扱う小数点数値であるが、小数部の桁数は1つに決まっておらず、必要に応じて小数点の位置を変えていく仕組みである。省略可能な引数」において以下のような誤りがありました。お詫びして訂正させていただきます。見て分かるとおり、かなりソースの内容が様変わりした。Optionalキーワードを引数に付加できる点は変わっていないが、IsMissing関数はVB.NETには存在しない。引数が省略されているかどうかを確認する方法は提供されていない。その代わり、引数にデフォルト値を指定することが可能になった。”という部分は、デフォルト値の指定である。ここで記述された引数が省略された場合は、このデフォルト値が指定されたものと見なすというわけである。このため、ソース7行目のように、引数なしでtest関数を呼び出すと、引数aにはデフォルト値(0)が自動的に補われるのである。6では引数が省略された場合に独自のコードを実行させることが容易であるのに対して、VB.NETでは省略時の値しか指定できないことである。6では、引数省略時に値をユーザーから入力させるコードも容易に書けるが、VB.NETでは省略時の値はソース・コード上に書き込まねばならない。見て分かるとおり、かなりソースの内容が様変わりした。Optionalキーワードを引数に付加できる点は変わっていないが、IsMissing関数はVB.NETには存在しない。引数が省略されているかどうかを確認する方法は提供されていない。VB6でも使用可能だった引数にデフォルト値を指定する方法が残されている。”という部分は、デフォルト値の指定である。ここで記述された引数が省略された場合は、このデフォルト値が指定されたものと見なすというわけである。このため、ソース7行目のように、引数なしでtest関数を呼び出すと、引数aにはデフォルト値(0)が自動的に補われるのである。6では引数が省略された場合に独自のコードを実行させることが容易であるのに対して、VB.NETでは省略時の値しか指定できないことである。6では、引数省略時に値をユーザーから入力させるコードも容易に書けるが、VB.NETでは省略時の値はソース・コード上に書き込まねばならない。1つの相違点は、引数の型にある。6においてIsMissing関数で省略可能な引数を調べる場合、引数の型はVariant型でなければならない。これは、引数を省略していることを示す情報がVariant型にしか格納されないことによる。VB.NETではIsMissiong関数が存在しないので、そのような制約を意識することなく、どのような型の引数を使用しても問題はない。6のサンプル・ソースではVariant型であるのに対して、VB.NETのサンプル・ソースはInteger型を指定している。TIPS「マニフェスト・ファイルをアプリケーションに組み込むには?」において以下のような誤りがありました。お詫びして訂正させていただきます。1.0」の実力(前編)」において以下のような誤りがありました。お詫びして訂正させていただきます。Hatの流れをくむ完全無料のLinuxディストリビューションである。Hatの実験的な無料Linuxディストリビューションである。TIPS「Windowsアプリケーションでアクセス・キーを割り当てるには?」において以下のような誤りがありました。お詫びして訂正させていただきます。誤アクセス・キーの割り当てではないが、メニューのテキストの文字列にタブ文字(\t)を挿入することで余白を空けることができる。正アクセス・キーの割り当てではないが、メニューのテキストの文字列にタブ文字(\t)を挿入することで余白を空けることができる(C#の場合)。.NET環境へのレガシー・マイグレーション」において以下のような誤りがありました。お詫びして訂正させていただきます。.NET」を提供開始しました。.NET」を提供開始しました。4.0は英語版が2003年11月、日本語版が2004年2月に発売されてからまだ1年もたっていませんので、すぐには大きなバージョン・アップは行いません。.NETは英語版が2003年11月、日本語版が2004年2月にリリースされてからまだ1年もたっていませんので、すぐには大きなバージョン・アップは行いません。.NETのメリット」において、一部(下記の表を参照)に誤解を招く不正確な表現が含まれていました。お詫びして訂正させていただきます。CPUが混在するようなシステムでも、VB.NETでは1種類の実行ファイルを作成するだけで済みます。個々のCPUに対応するネイティブ・コードへの変換は、実行に使用するパソコンに組み込まれたJITコンパイラが行うので、そのパソコンのCPUに適合したコードが得られます。VB.NETでは再コンパイルすることなしに、最新のCPUのパワーを発揮させられるわけです。CPUが混在するようなシステムでも、(API呼び出しなど個々のシステム固有のアーキテクチャに依存する機能は使わないといった制約を守る限り)VB.NETでは1種類の実行ファイルを作成するだけで済みます。Frameworkがネイティブ・コードへの変換を担当することで、それぞれ最適なネイティブ・コードを得ることができるわけです。これによって、VB.NETでは再コンパイルすることなしに、最新のCPUのパワーを発揮するようなプログラムも開発可能となるわけです。MatrixでWebアプリケーションを開発しよう」の表「webService.aspx上に配置するコントロールのプロパティ」で、[コントロール]=「Text」/[プロパティ]=「検索」/[値]=「」となっている個所がありましたが、これは[コントロール]=「Button」/[プロパティ]=「Text」/[値]=「検索」の誤りでした。お詫びして訂正させていただきます。MatrixによるASP.NET開発の基礎」において以下のような誤りがありました。お詫びして訂正させていただきます。誤VS.NETの場合、コントロール位置を絶対位置で指定するGridLayoutモードがデフォルトであった。WebMatrixではGridLayoutモードをサポートしない。正VS.NETの場合、コントロール位置を絶対位置で指定するGridLayoutモードがデフォルトであった。Matrixではコントロール位置を絶対位置ではなく左上から右下へ項目順に並べるFlowLayoutモードがデフォルトとなる。Position]を選択すればよい。VS.NETでGridLayoutモードとFlowLayoutモードを切り替えるには、Webフォーム上のコントロールではなくWebフォーム自体を選択した状態で、プロパティ・ウィンドウのpageLayoutプロパティを変更すればよい。「マイクロソフトが学生向けプログラミング・コンテストの世界大会を開催」において、2004年6月に行われる世界大会の開催場所が「スペインのバルセロナ」となっておりましたが、これは「ブラジル」の間違いでした。お詫びして訂正させていただきます。【7月16日】「特集:私がJavaからC#に乗り換えた10の理由」において以下のような誤りがありました。お詫びして訂正させていただきます。結果として、Javaプログラマは、生成と破棄のオーバーヘッドを避けるためにインスタンスを使い回したりインスタンスの粒度を大きくしたりすることになる。結果として、大量のインスタンスを扱う場合は、生成と破棄のオーバーヘッドを避けるためにインスタンスを使い回したりインスタンスの粒度を大きくしたりすることになる。誤structのデメリットは、ポリモルフィズムの使用が困難なことである。structはポリモルフィズムをあまり使用しない場合にしか適用できないのだ。正structのデメリットは、ポリモルフィズムの使用が困難なことと実行効率が悪い場合があることである。実体がスタックに置かれるのでポリモルフィズムは不可能だ。メソッドの呼び出しではスタックをコピーしなければならないので、あまり大きなオブジェクトを表現すると実行効率が落ちてしまう。誤ただし、逃げ道がないわけではない。正ポリモルフィズムに関しては逃げ道がないわけではない。誤まぁ、ヒープにコピーするせいで実行効率が落ちてしまうので、前述したようにstructはポリモルフィズムを“あまり”使用しない場合にしか適用できないのだが。正まぁ、ボックス化はヒープにコピーするので実行効率を落とすしメソッド呼び出し時のコピーも実行効率を落とすので、structはポリモルフィズムを“あまり”使用しない場合かつ“小さな”オブジェクトにしか適用できないのだが。Frameworkでは、GUIのイベント・ハンドラなどのメソッド単位で完結するもののコンポジションにデリゲートを使用している。デリゲートの効果は大きく、Javaよりもはるかに読みやすいGUI部分のソース・コードを記述できる。Frameworkでは、GUIのイベント・ハンドラなどのメソッド単位で完結するもののコンポジションにデリゲートを使用している。先ほどのコードを実装するのは面倒に感じるかもしれない。Frameworkがしてくれている。我々がしなければならないのはメソッドを割り当てる部分だけであり、それも演算子オーバーライドによって+=の後ろにメソッドを書くだけとなる。デリゲートの効果は大きく、Javaよりもはるかに読みやすいGUI部分のソース・コードを記述できるのだ。優秀なJavaプログラマが書いたソース・コードを見ると、やたらと「final」が目に付く。Javaでは、finalなメソッドはポリモルフィズムの対象にならない。ポリモルフィズムが不要な部分では、finalを指定した方が実行効率を向上させられるのだ。逆をいえば、例えば私のような凡庸なプログラマが書いたソース・コードでは、ポリモルフィズムを使用していない部分でCPUを無駄遣いしているのだ。ポリモルフィズムを使用しない部分の割合はかなり多い。いってしまえば、通常のビジネス・アプリケーションではポリモルフィズムを使う部分などほとんどないのである。結果として、多くの場合に無駄にCPUが使われていることになる。これは、Javaのデフォルトが「ポリモルフィズムあり」になっていることに原因がある。C#のデフォルトは「ポリモルフィズムなし」であり、ポリモルフィズムを使いたい場合にvirtualとoverrideを指定するのだ。C#なら無駄にCPUを使う可能性が減る。優秀なJavaプログラマが書いたソース・コードを見ると、やたらと「final」が目に付く。Javaでは、finalを指定することでサブ・クラスによるメソッドのオーバーライドを禁止できる。オーバーライドによる振る舞いの変更はたしかに便利だが、不適切なオーバーライドによるバグの可能性ももたらす。ポリモルフィズムが不要な部分では、finalを指定した方が安全性を向上させられるのだ。逆をいえば、例えば私のような凡庸なプログラマが書いたソース・コード(finalがほとんどない)では、ポリモルフィズムを使用していない部分に不要な危険が潜んでいる。ポリモルフィズムを使用しない部分の割合はかなり多い。いってしまえば、通常のビジネス・アプリケーションではポリモルフィズムを使う部分などほとんどないのである。結果として、多くの場合に無駄な危険を冒すことになる。これは、Javaのデフォルトが「ポリモルフィズムあり」になっていることに起因する。C#のデフォルトは「ポリモルフィズムなし」であり、ポリモルフィズムを使いたい場合にvirtualとoverrideを指定するのだ。C#なら無駄な危険を冒さなくて済む。誤しかし、実行効率を上げるためにほとんどのメソッドにfinalを付けるより、ポリモルフィズムのための少数のメソッドにvirtual/overrideを記述する方が作業量は大幅に少なくて済むのである。正しかし、ほとんどのメソッドにfinalを付けるより、ポリモルフィズムのための少数のメソッドにvirtual/overrideを記述する方が作業量は大幅に少なくて済むのである。4「2.WSEとWS-Attachments」のクライアント・アプリケーション作成手順のにおいて、OpenFileDialogコンポーネントを貼り付ける手順が抜けておりました。お詫びして訂正させていただきます。System.IO」が抜けていました。お詫びして訂正させていただきます。これにともない、Fig.6-1にあるプログラムの実行結果画面も誤っておりました。お詫びして訂正させていただきます。On」となっている個所がありました。お詫びして訂正させていただきます。SP1について触れた部分で、当初は「SP2の公開により、SP1のダウンロード・サービスは停止されたようだ」としていましたが、これは誤りで、SP1はSP2の公開後もダウンロード可能になっており、必要であればSP1を入手して適用することも可能です。お詫びして、この修正内容に沿って記事の当該部分を訂正させていただきます。4(対戦型格闘ゲーム)の登場キャクターを育成するというネットワーク・ゲーム」の誤りでした。お詫びして訂正させていただきます。「KAnimalクラスを使った草食動物の作成」において、掲載したプログラム(kanimal.cs、kanimal.vb)と、そのプログラムを引用している「KAnimalクラスで処理しているイベント(2)」内のコードの一部に誤りがありました。お詫びして訂正させていただきます。「オブジェクト・モデルと生物テンプレート」の「生物テンプレートの詳細(2)」において、「このとき第2パラメータには、移動速度を指定する」となっている個所がありましたが、これは「このときパラメータには移動先と移動速度を設定したMovementVectorオブジェクトを指定する」の誤りでした。お詫びして訂正させていただきます。Webサービスのキラー・アプリが登場?!」において、本文中の図に誤りがありました。WSDL」で検索していることになります)。お詫びして訂正させていただきます。データを保持しているのに対して、VB.NETのDate型はクラス・ライブラリのDateTimeクラスによって実現していることから発生したものである。DateTimeクラスは、日付と時刻の双方を保持する機能を持つため、そのまま表示させると日付と時刻の双方を表示する。文字列に変換するルールと、VB.NETのDate型が内部で保持するDateTime構造体の文字列への変換ルールが異なることによって発生したものである。6では日付と時刻を含む文字列を生成する。時刻が「00:00:00」の場合は日付のみを含む文字列を生成する。これは日付と時刻を分離して扱っていた旧世代のBasic言語との互換性のための挙動と思われる。Frameworkのクラス・ライブラリでは、このような互換のための配慮は継承されていないようで、単純に文字列に変換すると、条件に関係なく常に時刻を含む文字列に変換される。6での動作をVB.NETでも正確に再現したい場合は、書式を明示的に指定するなどの必要がある。お詫びして訂正させていただきます。第1回「ASP.NETがもたらす次世代のWebプログラミング」の「2.共通化されたプログラミング・モデル」のページにおいて、「ツリー・コントロールのような高機能なコンポーネントは、デスクトップ・アプリケーションにしか用意されていない。」となっていましたが、これは「標準ではツリー・コントロールのような高機能なコンポーネントは、デスクトップ・アプリケーションにしか用意されていない。「3.既存システムを凌駕するASP.NETの実力」のページにおいて、「またASP.NETでは、サーバ・サイドで実行されるコードはすべて<script>タグ内部に定義されることになっているため、コードは<script>タグ内部に、ビジュアル要素は<body>タグ内部にと、それぞれ完全に分離される。」となっていましたが、これは「ASP.NETでは、コードは<script>タグ内部に、ビジュアル要素は<body>タグ内部にと、それぞれ完全に分離して記述することが可能だ。お詫びして訂正させていただきます。Toolkitでも「JPhoneのJ-Sky、KDDI・au・ツーカー・グループのEZwebに対応」としていましたが、ベータ版での対応は「NTTドコモのiモード」のみで、J-Sky、EZwebへの対応は製品版で行われることが分かりました。お詫びして訂正させていただきます。「NetDictionaryプロジェクトとは何か?」の「2.ICDの開発環境」のページ、最後の見出し「@ITにおけるICDの構成」において、「ICDの各ページに対しても、@ITのフルテキスト検索用インデックスは生成されているので、記事検索ページから検索すれば、ICDに対してもフルテキスト検索を実行できるようになっている。」と記載していましたが、ICDのデータについては、@IT総合検索においても、見出しのみからの検索でした。当該表記部分を削除しました。お詫びして訂正させていただきます。これにともない、「まとめ」にあるプログラムの実行結果画面も誤っておりました。お詫びして訂正させていただきます。第5回「C#のデータ型」の「数値の範囲」において、「これらは、staticなメソッドなので、System.Int16.MaxValueというような書式で指定する(ちなみに、int.MaxValueでは期待する結果が得られないようだ)。」となっていましたが、int.MaxValueも正しく動作することを確認しました。お詫びして訂正させていただきます。Releaseインデックスにおいて、03/15日付けの米Microsoft発行のニュースリリースを「米Microsoft、Webサービス記述言語WSDLがインターネットの標準化団体W3Cで承認されたことを発表」としていましたが、これは「米Microsoft、Microsoft/IBMなどが共同で提案したWebサービス開発言語WSDL仕様がW3Cへの提案を承諾されたと発表」の誤りでした。お詫びして訂正させていただきます。Worldのソースコード」として、誤って他ページのソースコードと同一のものが掲載されていました。お詫びし、正しいソースコードに訂正させていただきます。例外の処理時には何らかの理由で、キャッチした例外をリスローしなければならないときがある。ジャグ配列とは「配列の配列」を表す用語。