2013年7月2日火曜日

3回目2013/07/2C#勉強

今日は備忘録に近いことを書いてます。
今、通信プログラムをC#を利用して書いていますが、その時に、感じたことの備忘録です。

1.
まず、書いててはまったのが、アクセシビリティがありませんのエラーが出て、意味が分からなくて、はまった。。。これは、メソッドを呼び出すときにpublicを付けてないことが原因だった。クラス自体にもpublicをつけておく必要があることに直ぐ気付けなかった。C++をやってた時の感覚だと、直ぐに気付けないかも。

2.
後、これもC++の感覚だが、(今日はそういう記述が多いです。汗 備忘録なので、あしからず)クラスを宣言した時に、必ずnewする必要があることに気付けず、少しはまった。C#ではすべてのクラスは参照型なので、インスタンスを作らないと使えない。


3.
C#で通信のプログラムを書くときにバイナリを扱う必要があるのだが、memoryStreamが便利。自動で、メモリの拡張をしてくれるのが、便利。バイトデータ〈8bitデータ)と文字列やint型の変換は専用のクラスがあるので、それを使えば大丈夫。後、文字のエンコード型には注意すること。エンコードもUTF-16をasc2コードに変換するクラスがある。C#って便利だ。


4.
C#には関数の宣言時にconstを利用した変数の宣言は出来ない。これは注意が必要。ネットで調べたところによると、後から、全体の処理を扱うときに、constが付いていると不便だとかあったが、よくわからんかった。。。
それとは少しが話がずれるが、outという修飾子がある。これは関数の引数で値を返すことを約束していて、引数を初期化する必要が無いことを明示している。逆に言えば、refの時は必ず明示する必要がある。ちなみにrefは関数の引数を参照渡しするときにつける修飾子。

下記みたいな感じで、refを使う。outもrefを置き換える感じ。
public void test(int data, ref string buf);
なんか、文字ばっかりかいているから、少しコードを書いてみた。(あんまり雰囲気が変わらない。。。)


今日はこんな感じでした。
備忘録に書いておきます。

もし、最後まで読まれた方がいらっしゃったら、ありがとうございました。
失礼します~!!!



0 件のコメント:

コメントを投稿