Movatterモバイル変換


[0]ホーム

URL:


ぐるぐる~

トップ>.NET

.NET

centerclr.doorkeeper.jp 直前で定員を増やしてもらえたので、参加できました。 会自体について 内容は主にILの話と式木の話で、ディスカッションというよりは講義に近い感じでした。 個人的にはディスカッション寄りの会を期待していたのですが、知識レベル…

はてなブックマーク - ChalkTalk CLR – 動的コード生成技術(式木・IL等)に行ってきた

エラーの発生および処理のガイドラインこんなページ見つけた。 このページによると・・・ ほとんどの場合は、定義済みの例外の型を使用します。新しい型の例外を定義するのは、クラス ライブラリを使用する開発者がその新しい例外型をキャッチし、その型自体…

はてなブックマーク - .NET言語の例外事情

Public Shared Function IsAlpha(ByVal str As String) As Boolean If IsNothing(str) Then Return False End If For Each ch As Char In str.ToCharArray If Not Char.IsLetter(ch) Then Return False End If Next Return True End Function

はてなブックマーク - 画面が青いよ!

心の底からやりたくないと思った言語は始めてだ・・・ VB.NETとか言ってもN88 BASICとそんなにかわらねーだろ、とか思っていたのが間違いだった。N88 BASICがいいものかどうかは別にして、N88 BASICは「やりたくない」とは思わなかった。 でもVB.NETにはしょ…

はてなブックマーク - やる気が・・・

これはきっと何かの嫌がらせだ。 予約語一覧 AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType Date D…

はてなブックマーク - VB.NETやべぇ

C#ではインターフェイスメンバを明示的に実装することで、複数のインターフェイスに同じシグネチャのメソッドがあった場合に個別に実装することができる。 using System; interface IHoge { void Method(); } interface IPiyo { void Method(); } class Hoge…

はてなブックマーク - 明示的なインターフェイスメンバの実装

C#のインターフェイスはJavaのインターフェイスと基本的には同じだが、異なる部分もある。 まず、C#のインターフェイスには定数が記述できない。更に、ネストした型を宣言することも出来ない。 前者は許せるのだが、後者は慣れが必要そうだ。まぁC#にはinter…

はてなブックマーク - インターフェイス

C++の構造体とクラスはデフォルトのアクセスレベルが違うだけで、それ以外は全く同じだが、C#の構造体とクラスはかなりの違いがある。 class struct 格納場所 ヒープ スタック*1 継承 可 不可*2 *3 メンバの制限 なし あり*4 フィールドの宣言箇所での初期化…

はてなブックマーク - 構造体

C++と同様、C#も演算子をオーバーロードすることができる。ただし、staticメソッドである必要がある。 が、結構面倒なのであまり使わないかも。

はてなブックマーク - 演算子のオーバーロード

この本には載ってなかったけど、シールクラスと同様、メソッドにsealedをつけるとオーバーライドを不可能にできる*1。 *1:ただし隠蔽は可能

はてなブックマーク - シールメソッド

C#の抽象クラス自体はJavaとほとんど同じだが、抽象クラスを継承してクラスを作る場合、C#ではここでもovrerideキーワードを使用する必要がある。 using System; abstract class Base { public abstract void Method(); } class Sub : Base { // overrideが…

はてなブックマーク - 抽象クラス

C#のネステッドクラスはJavaのstaticなメンバクラスと同じようなもので、C#には非staticなメンバクラスは存在しない*1。 また、クラスだけじゃなくてインターフェイスや構造体、列挙体もネストさせることができる。 class Outer { class NestedClass {} inte…

はてなブックマーク - ネステッドクラス

ボックス化はJavaのオートボクシングと同じようなものだけど、ボックス化解除とJavaのオートアンボクシングは前者に比べて違いが大きい。 ボックス化は値型を参照型として扱うための仕組みで、Javaのオートボクシングのようなもの。 // intはSystem.Int32の…

はてなブックマーク - ボックス化、ボックス化解除

C#もJavaと同様、全てのクラスは必ずObjectクラスを継承していることになる。また、構造体もObjectクラスを継承している*1。 Objectクラスは引数なしのコンストラクタと、いくつかのメソッドを持っている。 宣言 概要 public virtual bool Equals(Object obj…

はてなブックマーク - Objectクラス

C#ではJavaと違って、インスタンス経由でstaticメソッドを呼ぶことは出来ない。

はてなブックマーク - staticメソッド

C#のメソッドは通常、Javaと同じで値渡し、もしくは参照の値渡しだけど、refやらoutやらつけることで参照渡しもできる。 まずはrefから。 static void Method(ref int i) { if (i < 0) i = 0; } で、呼び出し側はrefをつけて呼び出す。 int data = -10; Meth…

はてなブックマーク - refとout

Javaのfinalなクラスと同じ。 sealed class SealClass {} これは、Javaの場合 final class FinalClass {} こう書くのと同じ。Javaは同じキーワードを使いまわすけど、C#は別の役割のものには別のキーワードを割り当ててるみたい。

はてなブックマーク - シールクラス

C#はポリモーフィックなメソッドに関して、Javaに比べて少し複雑になっている。 using System; class Base { public void Method() { Console.WriteLine("base class"); } } class Sub : Base { public void Method() { Console.WriteLine("sub class"); } }…

はてなブックマーク - ポリモーフィックなメソッド

スーパークラスのコンストラクタの呼び出しとオーバーロードされたコンストラクタの呼び出しはC++とJavaの中間のような感じ。 class Hoge { public Hoge(int i) {} // オーバーロードされたコンストラクタの呼び出し public Hoge() : this(10) {} } class Ex…

はてなブックマーク - 他のコンストラクタの呼び出し

C# Language Specificationネットに言語仕様があるのはありがたいんだけど、MSDNの中、しかも変に凝ってるため非常に読みにくい。 確かC#ってJIS化してたような・・・プログラム言語 C#これか。うーん高い。会社に買ってもらおう。

はてなブックマーク - 言語仕様

Javaのfinalは意味がたくさんあるけど、その中で定数性を表すfinalに相当するのがこのconstとreadonly. C#のconstはかなり潔癖で、変数が少しでも絡むとコンパイルエラーとなる。 // エラー int n = 10; const int i = n == 0 ? 1 : 2; だけど、readonlyを使…

はてなブックマーク - constとreadonly

プロパティは表記としてはフィールドへのアクセスだけど、中身はメソッドとして実装されている。 要は、アクセサメソッドって呼び出し面倒だし、直感的じゃないよねー、ということで出てきたものなんだと思う。 using System; class Program { private int d…

はてなブックマーク - プロパティ

Disposeメソッドが例外で落ちたときでも他のDisposeメソッドが呼ばれるかどうか。 using System; class Program : IDisposable { private static int count = 0; private readonly int id = count++; public void Dispose() { Console.WriteLine("dispose {0…

はてなブックマーク - IDisposable(2)

C#ではICloneableなのにIDisposableなのか。 というのは置いといて、C++のデストラクタに近いのがDisposeメソッド。このメソッドはIDisposableインターフェイスのメソッドで、using文と併用することでRAIIなクラスが作れる。 class Program : IDisposable { …

はてなブックマーク - IDisposable

C#のデストラクタはC++のデストラクタより、Javaのファイナライザに近い。 ~SomeClass() { ... } こんな感じで書き方としてはC++と同じだけど、 protected override void Finalize() { try { ... } finally { base.Finalize(); } } な感じに変換。 これをJav…

はてなブックマーク - デストラクタ

C#でインスタンスの生成が不可能なユーティリティ用クラスを作る場合、staticクラスというのが使えるらしい。 static class SomeUtils { public static void SomeMethod() { ... } } こんな感じでclassにstaticつけるだけで、このクラスはインスタンスの生成…

はてなブックマーク - staticクラス

なんか仕事で使いそうな勢いだからプログラミングC#―C#2.0/.NET2.0/Visual Studio2005対応作者: ジェシーリバティ,Jesse Liberty,鈴木幸敏,首藤一幸,情報技研出版社/メーカー: オライリージャパン発売日: 2006/02メディア: 単行本購入: 1人 クリック: 22回こ…

はてなブックマーク - C#
検索

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp