Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9759

C# 入門

$
0
0

C#の学習メモです。

言語の特徴

  • C言語を始めとした各言語から継承した言語仕様(CC++JAVAC#
  • オブジェクト指向言語(クラスの定義)
  • プロジェクト単位でプログラムを管理
  • PC、スマホなど幅広いプラットフォームに対応
  • .NETフレームワーク上(windows上で動くアプリ)で動作

.NET

C#は、.NET上で動く言語。(CLI:Common Language Infrastructure規格上で動く)
.NET Coreは、クロスプラットフォームで互換性あり(LinuxやMacOSも対応)

  • CLR(Common Language Runtime)
    C# → IL Code(中間コード) → Native Code コンパイルされる
    .NET Frameworkに対応した言語のライブラリを共通して使える(e.g. C#、VB.NET、F#、C++...)

  • Class Library

開発環境

Visual Studio(IDE:統合開発環境) → Visual Studio Codeよりも高機能。

macでは、windowsアプリ(フォームなど)は作れないみたいですね...

プロジェクト

C#は、プロジェクト単位で各種ファイルを管理します。ひとつのプログラムを作るのに必要な複数のファイルとアセット(画像などの素)をひとまとめにしてプロジェクトとします。

Program.cs
usingSystem;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){Console.WriteLine("Hello World!");}}}

静的型付け言語

C#は静的片付け言語なので、変数や定数を宣言する際には、型を宣言する必要があります。また、データ型によって確保するメモリのビット数が異なる為、型変換の際に大きい型から小さい型に変換しようとすると、「暗黙的に変換できません。明示的な変換が存在しません。」とエラーがでます。

データ型説明ビット
byte符号なし整数8
sbyte符号つき整数8
int符号つき整数32
uint符号なし整数32
short符号つき整数16
ushort符号なし整数16
long符号つき整数64
ulong符号なし整数64
floatバイナリ浮動小数点数32
doubleバイナリ浮動小数点数64
charUnicode文字列16
boolブール値8
string文字列
decimal高精度10進浮動小数点数128

整数は、小数点を含まない整数。
浮動小数点は、小数点いかを含む実数。
符号つきは、負の値を含む。

floatdoubleだと小数点の値に誤差が生じるので、絶対に誤差を出したくない場合はdecimalを使います。(金額計算など)

Microsoft/ドキュメント/C#/型/種類

Program.cs
usingSystem;classProgram{staticvoidMain(string[]args){byteval1=255;shortval2=10;shortval3=short.MaxValue;// 32767shortval4=short.MinValue;// -32768intval5=10;longval6=10;floatval7=1.23f;// サフィックス(数値の末尾にデータ型を示す文字列)が必要doubleval8=1.23;// 1.23dと明示的に表記してもOKdecimalval9=1.23m;boolval10=true;stringval11="string";}}

サフィックスは、大文字でも小文字でもどちらでもOKです。

値型と参照型

  • 値型 → 数値 → int コピーした場合、値そのものが別のメモリに確保される
  • 参照型 → クラス → コピーした場合、参照先自体がコピーされる

Javascriptの変数とオブジェクトの「コピー・参照」と挙動と同じになっています。

学習項目

C#で押さえておきたい項目は下記の通りです。

  • 文法
  • コーディングルール、お作法
  • オブジェクト指向
  • デザインパターン
  • TDD(テスト駆動開発)
  • リファクタリング
  • DDD(ドメイン駆動開発)

オブジェクト指向

DAOパターン ストラテジーパターン + ファクトリーパターン

参考本

リーダブルコード
.NETのクラスライブラリ設計

ドキュメント


Viewing all articles
Browse latest Browse all 9759

Trending Articles