この記事を読むのに必要な時間:およそ 0.5 分
ダウンロード
(2020年6月15日更新)
本書で使用したサンプルコードおよび演習問題の解答は,以下のリンクをクリックすることでダウンロードできます。
なお,サンプルコードに一部修正がありました。6月14日以前にダウンロードされた方は,お手数ですが,再度ダウンロードしていただきますよう,お願いいたします。
- ダウンロード
- サンプルコード
- 演習問題の解答
いずれも圧縮ファイルとなっておりますので,解凍すれば利用できるようになります。なお,詳しいことは本書のP.5~P.6をお読みください。
免責事項
それぞれのソースコードは,ご自身の責任において使用してください。使用した如何なる結果についても,著者および技術評論社は一切の責任を負いません。
2018年11月現在,執筆時点からC#を取り巻く状況が変わっていますので,以下のとおり補足いたします。
(2018年11月26日最終更新)
1 MSDNからMicrosoft Docsへ
Microsoftは15年にわたって運用してきたドキュメントサイトMSDNを引退させ,新しいドキュメントサイト
「Microsoft Docs(docs.microsoft.com)」を立ち上げたうえで,そちらにドキュメントを全面移行しています。
そのため,本書の中のMSDNあるいはMSDNライブラリという用語は,Microsoft Docsと読み替えていただく必要があります。
Microsoft DocsのトップページのURLは,以下のとおりです。
なお,本書の脚注などで紹介しているMSDNへのURLにアクセスすると,新しいMicrosoft Docsのページへリダイレクトされます。
2 Visual Studio 2015という表記に関して
本書では,執筆時点の最新バージョンであるVisual Studio 2015を使用し,操作手順などを紹介していますが,Visual Studio 2017以降でも同等の機能が利用可能です。
お詫びと訂正(正誤表)
小社刊『実戦で役立つC#プログラミングのイディオム/定石&パターン』(出井秀行・著/2017年3月3日 初版 第1刷,2017年8月18日 初版 第2刷,2018年12月26日 初版 第3刷,2020年1月9日 初版 第4刷)におきまして,一部の記述に間違いのあることが判明いたしましたので,下記のとおりお知らせいたします。読者の皆様にはご迷惑をおかけし,まことに申し訳ございません。ご容赦くださいますよう,お願い申し上げます。
(2020年12月4日最終更新)
以下,第1刷,第2刷,第3刷および第4刷にある誤り
P.188 本文下から4行目
誤 |
指定したキーがにディクショナリに存在しない場合、
|
---|
正 |
指定したキーがディクショナリに存在しない場合、
|
---|
P.65 「3. Saleオブジェクトを1つずつ取り出し処理をする」の本文1行目
誤 |
foreach 文を使い,_salesディクショナリから
|
---|
正 |
foreach 文を使い,_salesリストから
|
---|
P.29 「1.3 値型と参照型」の本文(上から2~3行目)
誤 |
.NET Frameworkに定義されたカスタムクラスや構造体
|
---|
正 |
.NET Frameworkに定義されたクラスや構造体
|
---|
「カスタム」が不要。
P.356 リスト14-17(空行を含め5行目)
誤 |
Console.WriteLine("{0}% {0}/{1}", e.ProgressPercentage,
e.BytesReceived, e.TotalBytesToReceive);
|
---|
正 |
Console.WriteLine("{0}% {1}/{2}", e.ProgressPercentage,
e.BytesReceived, e.TotalBytesToReceive);
|
---|
P.357 リスト14-19(下から3行目)
誤 |
string s = Regex.Replace(node.Value,"【|】", "");
yield return node.Value;
|
---|
正 |
string s = Regex.Replace(node.Value,"【|】", "");
yield return s;
|
---|
P.361 リスト14-24(3~4行目)
誤 |
ZipFile.CreateFromDirectory(sourceFolder, archiveFile, CompressionLevel.Fastest,
includeBaseDirectory: false);
|
---|
正 |
ZipFile.CreateFromDirectory(sourceFolder, archiveFile, CompressionLevel.Fastest,
includeBaseDirectory: true);
|
---|
P.385 演習問題「7.」の出力例(下から2行目)
誤 |
Microsoft Visual C#再入門
|
---|
正 |
Visual C#再入門
|
---|
「Microsoft」が不要。
P.460 「19.2.1 ネストは浅くする」の本文(上から6行目)
誤 |
・コードはコードを読み解くのに時間がかかる
|
---|
正 |
・コードを読み解くのに時間がかかる
|
---|
先頭の「コードは」が不要。
以下,第1刷,第2刷,第3刷および第4刷にある誤り
P.118 コード例を含め上から7行目
誤 |
には、DefaultNameがnumに代入されます。
|
正 |
には、DefaultNameがnameに代入されます。
|
P.211 コード例を含め上から8行目(×のコード例の2行目)
誤 |
Console.WriteLine("2015/12/31以前です。");
|
正 |
Console.WriteLine("2016/5/31以前です。");
|
以下,第1刷,第2刷および第3刷にある誤り
P.169 見出し「LINQを使ったコード」の下3行目
誤 |
変数isAllPositiveにはtrueが設定されます。
|
正 |
変数isAllPositiveにはfalseが設定されます。
|
P.130 リスト4.48の7行目と8行目(空行含む)
誤 |
public AppVersion(int major, int minor, int revision)
: this(major, minor, revision, 0) {
|
正 |
public AppVersion(int major, int minor, int build)
: this(major, minor, build, 0) {
|
以下,第1刷および第2刷にある誤り
P.116 上から10行目のソースコードの1行目
誤 |
var message = GetMessage(code)
|
正 |
var message = GetMessage(code);
|
P.285 リスト11.10の下から6行目
誤 |
var novelist = ReadNovelists();
|
正 |
var novelists = ReadNovelists();
|
P.348 本文の下から6行目(ソースコードは除く)
誤 |
AssemblyInfo.csに内のAssmblyVersion属性に反映されます。
|
正 |
AssemblyInfo.cs内のAssmblyVersion属性に反映されます。
|
(以下2018年2月19日更新)
以下,第1刷および第2刷にある誤り
P.427 リスト17.13中6~7行目
誤 |
return name.ToLower() == "meter" || name.ToLower() == "meter" || name == UnitName;
|
正 |
return name.ToLower() == "meter" || name == UnitName;
|
2つ目の「.ToLower() == "meter" || name」が余分でした。
(以下2017年8月1日更新)
以下,第1刷および第2刷にある誤り
P.205 上から2行目
誤 |
秒、1/100秒)を含んだ
|
正 |
秒、1/1000秒)を含んだ
|
P.205 リスト8.3の最終行のコメント
誤 |
// 1/100秒: Millisecond
|
正 |
// 1/1000秒: Millisecond
|
(以下,2017年6月5日更新)
以下,第1刷にある誤り
P.111 リスト4.20の1行目
誤 |
foreach (var item in Collection) {
|
正 |
foreach (var item in collection) {
|
(以下,2017年4月19日更新)
P.169 本文中程およびリスト6.23の2行目
(以下,2017年2月13日更新)
P.320 上から6行目(空行を除く)
誤 |
JSONファイルに逆シリアル化する
|
正 |
JSONファイルにシリアル化する
|
P.359 最下行
誤 |
if (!File.Exists(destinationFolder)) {
|
正 |
if (!Directory.Exists(destinationFolder)) {
|
P.384 下から2行目~ P.385 上から1行目の枠で囲んだ出力例
誤 |
2013年 2800円 Webデザイン講座 HTML5&CSS (Web Design)
2013年 4200円 PowerShell 実践レシピ (Server)
2014年 3800円 C#開発指南 (Development)
|
正 |
2016年 4800円 Microsoft Azureサーバー構築 (Serever)
2016年 2780円 Visual C#再入門 (Development)
2016年 2600円 Word・Excel実践テンプレート集 (Application)
|
P.399 リスト16.13の上から5行(空行を含む)
誤 |
private void button1_Click(object sender, RoutedEventArgs e) {
WriteTexts("sample.txt");
}
private async void WriteTexts(string filename) {
|
正 |
private async void button1_Click(object sender, RoutedEventArgs e) {
await WriteTexts("sample.txt");
}
private async Task WriteTexts(string filename) {
|
P.406 下から2行目
誤 |
private async Task<int> DoSomethingAsync() {
|
正 |
private async Task<long> DoSomethingAsync() {
|
P.407 下から9行目(脚注,空行含まず)
誤 |
private int DoSomething() {
|
正 |
private long DoSomething() {
|
P.408 1行目
誤 |
private async Task<int> DoSomethingAsync() {
|
正 |
private async Task<long> DoSomethingAsync() {
|