ティアのホームページ☆ミ:Page 464 oC
<<< << < prev3$F? 464/554ページ(1661件) $FAnext3 > >> >>>
To Close..謎は全て解けた! 2009年02月20日14時38分
C#での、先日のあれについて、ようやく書いてある部分を見つけました。

下手に他言語を利用している関係で、全く読んでいなかったC#の基本的なドキュメントの中にその説明がありました。

VS2005のドキュメントで言うと

「データ型 (C# プログラミング ガイド)」
に記載されてあり、


・値を格納する 値型 (C# リファレンス)
・実際のデータへの参照を格納する 参照型 (C# リファレンス)

の二種類あることが明記されています。

で、=を使うと山椒が入るのが、「参照型」と言うわけですね。

それで、その参照型は主に

class

他にも「interface」とか「delegate」とかも有りますが、
そもそもインターフェイスはそもそもオブジェクトへの参照の定義ですし、
delegateは関数への参照の定義ですし、まぁはじめから参照ですね

特殊な部類に
「object」「string」が有りますが、stringが参照型というのはC++のときからそうですし、「object」はclassルートですから、まぁあえてオブジェクトにする「ボックス化」と言うところで特殊用途みたいです。

まぁ「classが参照型」と覚えるのが良いでしょう。


値型というのは、まぁintとかそのあたり
それ以外のは「struct」「enum」ですね。

値をいくらでも宣言できる物として「class」と「struct」を同一視する人がいますが、実際には、かなり違う物です。

構造体は、データのひとまとめであって、まとめただけ

classはメソッドを作らなければ構造体と大差ない状態になりますが、データとそれを扱う関数群となります。


あと、構造体は値型なので、=で代入先に複製が作成されるのですが、class等を含む場合、簡易コピーされてしまうので、クラスは参照型代入されます。

構造体に含まれるクラスを変更すると、元の構造体のクラスも変更されてしまうので要注意です。

クラスを含む場合は、構造体ではなくクラスにしてしまい、cloneメソッドを作成しておくのが良いかもしれません。
ICloneable インターフェイスを定義しておくことで、クラスが複製できることを明確に宣言できますし、こっちの方が良いでしょう☆
ちなみに、cloneメソッドの中では必要なデータを全部複製させる機能をだらだら書き込む必要が有ります。
閉じる
テーマ:日記 URL:https://tsukiyori.sakura.ne.jp/index_m.cgi?ID=272
 
To Close..その先の自由へ 2009年02月19日14時46分
最近の仕事と言えばC#を扱っているんですがね?

アセンブラからプログラムを使い始めたあたしとしては、いろいろと戸惑うことがあるのです。


A=B

と書いたときプログラム的には

Bの内容をAに代入することを意味します。

Bが3だった場合

それまでのAが何であろうとも

A=Bを実行した段階で

Aも3になります。


しかし、ここには重要な問題があります。


AとBは同一か否か

Aが3でBが3なら 同一でしょ?とか思うかもしれませんが

それぞれの値の意味は同じだけど

AはAで有ってBではない

Aの中身とBの中身は意味(数値)は一緒だけどAとBは別の入れ物であると言うことです。

これは、プログラムがパソコンのメモリ上に存在することを考えるとよく分かります。

たとえばAやBを家と考えます。

AとBが全く同じ形状をした家で、A宅とB宅に全く同じ家具を設置した場合、中に入ってしまうとAの家かBの家か分からなくなります。

でも、窓から外を見れば、風景は違いますから、どっちだか分かるでしょう

なのでアセンブラやC++には家を住所的に扱う方法、家の中身を扱う方法、家の中身を移動する方法、家の中身を複製する方法、全部が違う方法で表現します。


しかしC#は困ったことにこれが全部同じなのです。

A=B
の後に
A=4
を行うと
Bの中も4になることがあります。

この場合AとBは全く同じ物です。
AはBの別表現
●●番地▲号
と表記するか
●●−▲
と書くか、そんな感じです。

しかし、

A=B
の後に
A=4

を実行するとBは3のままの場合もあります。
この場合AはAで存在し、Bの複製をAに入れたことになります。

C#になれてくると、この違いが分かるようになるのかもしれませんが、
今のところは分かりません。

どうしたらいいのかさっぱりです。

とりあえず、愚痴です(笑
閉じる
テーマ:日記 URL:https://tsukiyori.sakura.ne.jp/index_m.cgi?ID=271
 
To Close..16:10 2009年02月19日09時10分
ティアのたわごと☆其の566

ディスプレイにおける16:10とは何なのか?

ディスプレイが進化するに当たり4:3の踏襲しつつも新たな解像度として登場したのが1600×1200だったのが一つの問題です。

もちろん、今現在では、もっと上の解像度も存在していますが、何はともあれ、4:3が拡大する課程として、1024*768のあと、1280*1024(5:4)なんて解像度が出現したことが一番の原因なんです。

一般のドキュメントが縦に長いことが原因で1280*960にはならず、1024になってしまったことで次の解像度が1600×1200になってしまったのです。

順当に横が増えた場合
1440*1080となってしまい、縦が1280*1024に比べてわずかに56の微増にとどまってしまうため、この段階を飛び越えて1600×1200へ言ってしまったのです。

ここで、みた数字が出てきましたよね??

そうです。1080です。
これはHDの縦と同じ解像度です。

要するに1440*1080(4:3)をワイド(16:9)にしたのが1920*1080なんです。

4:3は 書き換えれば12:9です。 
12:9と 16:9の違いだけであれば、16:10のPC解像度は出現する必要がなかったのです。

どこの誰が作ったんだか知りませんが1280*1024のせいで、1440*1080を経由しないで1600×1200になってしまったのが一番の原因なんですよね、

でも今更縦を120も削って1080の解像度へはそう簡単には戻れません。


16:10ばんざ〜い! 16:10に栄光有れ!

どちらかというと、早めに消滅した方が良いかもw
閉じる
テーマ:たわごと URL:https://tsukiyori.sakura.ne.jp/index_m.cgi?ID=270
 
<<< << < prev3$F? 464/554ページ(1661件) $FAnext3 > >> >>>