タグ

ブックマーク / ufcpp.net (8)

  • 非同期処理の種類

    概要 「非同期処理」と言っても、いくつかのタイプの用途があって、それぞれ書き方や使うクラス ライブラリが異なります。 大まかに言うと、以下のような用途があります。 バックグラウンド処理: 負荷の高い計算や、I/O待ちなどによって、CPUやスレッド資源を保持し続けないために、別スレッドでの計算やI/O待ちを行います。 並列計算: マルチコアCPUの性能を最大限引き出すために、同じ計算を複数のコアで同時に実行します。 データ並列: 同じ処理を異なるデータに対して繰り返し行います。 タスク並列: 異なる処理が独立して動いていて、その間で非同期にデータのやり取り(非同期データフロー)を行います。 C# 5.0 で導入された非同期メソッド(「非同期処理」参照)は、前者のバックグラウンド処理を簡単化するものです。 一方、データ並列には.NET Framework 4 で導入された Parallel ク

    非同期処理の種類
    neumann
    neumann 2024/02/21
  • プロパティ

    概要 プロパティ(property:所有物、特性)とは、JavaC++にはない(Visual Basicにはある)機能で、 クラス外部から見るとメンバー変数のように振る舞い、 クラス内部から見るとメソッドのように振舞うものです。 JavaC++がこの機能を持ってないことからも分かると思いますが、 プロパティはオブジェクト指向言語に必須の機能ではありません。 しかし、これから説明していくように、あると便利なものです。 ポイント プロパティ: 中(実装側)からはメソッドのように扱え、外(利用側)からはメンバー変数のように見えるもの。 実装の隠蔽(カプセル化)の原則を崩すことなく、 アクセサー関数の煩雑さを解消。 プロパティとは 「実装の隠蔽」で、 メンバー変数はクラス外部から直接アクセス出来ないようにして、 オブジェクトの状態の変更はすべてメソッドを通して行うべきだと書きました。 これを忠

    プロパティ
    neumann
    neumann 2020/03/23
  • リソースの破棄

    概要 ファイルや周辺機器などのリソース(OSが管理している資源)を使用する場合、 まずリソースを使用する権利を取得し、 リソースに対する操作(ファイルの読み書きなど)を行った後、 リソース使用権を破棄する必要があります。 メモリは .NET Framework の「ガーベジコレクション」機能が自動的に管理していて、 プログラマが明示的に破棄してやる必要はないのですが、 ファイルなどは「ガーベジコレクション」の管理対象外で、 明示的な破棄が必要です。 リソースの破棄を怠ると操作が正しく完了しなかったり、 他のプログラムからそのリソースを使用できなくなったりします。 (例えば、ファイルにロックが掛かったままになって、ファイルの読み書きがしばらくできなくなったり。) そのため、リソースの破棄は確実に行う必要があるのですが、 これは意外に面倒な作業だったりします。 ポイント .NET Framew

    リソースの破棄
    neumann
    neumann 2006/09/16
  • C# 2.0 の新機能

    2005年、Visual Studio 2005 の発売に合わせ、 .NET Framework および C# がメジャーバージョンアップして、 .NET Framework 2.0、C# 2.0 になりました。 バージョン 1.0 から 1.1 へのバージョンアップはほとんどバグフィックスのみで、 機能的な変更は小さなものでした。 これに対し、2.0 へのメジャーバージョンアップでは、 少し大きな機能追加がありました。 ここでは、その追加機能、すなわち、C# 2.0 の新機能について説明します。 Generics C++ で言うところの template。 (ただし、template とは実装の方式が違います。) 以下のような感じで、“型をパラメータに持つ型”を作ることが出来ます。 public class Stack<T> { T[] items; int count; public

    C# 2.0 の新機能
  • 条件分岐

    概要 プログラム中で、ある条件を満たしたときだけ処理の流れを変えたい場合があります。 このような処理を条件分岐といい、 C#では条件分岐のために if、else、switch などのキーワードを用意しています。 ポイント if(条件式) 真のとき if(条件式) 真のとき else 偽のとき switch(条件) { case 値: ... } goto Label; if 文 if 文は以下のような書き方をします。 if(条件式) 文1 // 条件式が真のときに実行される else 文2 // 条件式が偽のときに実行される 英文法に近い書き方ですね。 if A, B, else C (もし A ならば B、さもなくば C)。 if 文は if の後の括弧内に書かれた条件式の真偽によって処理の流れを変えます。 条件式が真のときには 文1 が、偽のときには 文2 が実行されます。 また、el

    条件分岐
    neumann
    neumann 2006/09/10
  • C# 3.0 の新機能

    2005年9月、C# 2.0 の正式出荷を目前にして、 C# の次世代拡張 C# 3.0 の言語仕様が公開されました。 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 (データベースや XML 操作用のライブラリと、 プログラミング言語中にSQL 風の問い合わせ構文を埋め込めるようにする言語拡張から成ります。) C# 3.0 に追加された機能の多くは、基的にこの LINQ を使うために必要な機能、 あるいは、より便利に LINQ を使うための機能になります。 ちなみに、詳しくは「小さな機能の組み合わせ」で説明していますが、 LINQという大きな目的を、小さな機能の組み合わせで実現し

    C# 3.0 の新機能
  • C++ STL | ++C++; // 未確認飛行 C

    C++ STL に関する説明

    C++ STL | ++C++; // 未確認飛行 C
    neumann
    neumann 2005/06/19
  • XML Document(C# によるプログラミング入門)

    概要 ライブラリなどを作成し、公開する場合、ライブラリの内容を他人に理解してもらえるようにドキュメントを作成してやる必要があります。 ところが、プログラムのドキュメントを書く作業というのは結構面倒な作業です。 少しでも面倒な作業を減らせるように、C#コンパイラはC#のソースファイルをコンパイルする際に、一緒にXML形式のドキュメントを作成してくれます。 Javaをご存知の方はJavaのソースからドキュメントを生成するためのツール「javadoc」を使ったことがあるかもしれません。 C#のXML Documentationはこのjavadocと似たようなものです。 javadocとの違いは、コンパイラと別のツールとして提供されているのではなく、C#のXML DocumentationはC#コンパイラ自身に組み込まれていることと、出力形式がHTMLではなく、XMLであることです。 ポイント /

    XML Document(C# によるプログラミング入門)
  • 1