C#, C♯, C#相談室 Part55at TECH
C#, C♯, C#相談室 Part55 - 暇つぶし2ch260:デフォルトの名無しさん
09/10/27 15:51:08
XLは?

261:デフォルトの名無しさん
09/10/27 21:15:54
「列挙型はクラスではない」で合っていますか?
あと「文字列や配列はクラスである」という理解でいいんでしょうか?

値型となるのが数値、文字、真理値、構造体
参照型となるのが配列、文字列、クラス、インターフェース、デリゲート
列挙型は特定の数値しか取らない型定義だから、値型。つまり参照型のクラスではない
という論法。

262:デフォルトの名無しさん
09/10/27 21:36:56
俺もそういう理解だけど、困ったこと無いからいいんじゃないかな?
間違ってるとして、困った事が起こるのはどんな時?教えて偉い人。

263:デフォルトの名無しさん
09/10/27 21:41:09
配列はクラスかというとちょっと微妙だな
配列型の基底クラスであるArrayは確かにクラスだけど配列型そのものは
やっぱりクラスではなく配列型と呼ぶのが普通だろう
デリゲートだってDelegateはクラスだけどデリゲートそのものはデリゲート型と呼ぶだろ(実体はクラス)

264:デフォルトの名無しさん
09/10/27 21:43:19
なんですかそのパンダは哺乳類と呼ぶべきで動物じゃない理論は

265:デフォルトの名無しさん
09/10/27 21:50:56
動物か植物か矛盾だらけの世界~♪とかいう歌を最近聴いた気がする。

System.EnumはSystem.ValueTypeを継承してるから値型の一種でいいと思うけど、
struct型の値型とは分類が違う。EnumはEnum型と呼ぶべきだろう。

266:デフォルトの名無しさん
09/10/27 22:04:22
列挙型ってCLIのプリミティブ型に型情報をくっつけてるだけだよ
その意味ではInt32やCharなどと同じ

267:デフォルトの名無しさん
09/10/27 22:09:04
ILで見ると分かりやすい。
public enum ABC { aa, bb, cc }
が、こうなる。
.class public auto ansi sealed ABC extends [mscorlib]System.Enum
{
  .field public specialname rtspecialname int32 value__
  .field public static literal valuetype ABC aa = int32(0x00000000)
  .field public static literal valuetype ABC bb = int32(0x00000001)
  .field public static literal valuetype ABC cc = int32(0x00000002)
}


268:デフォルトの名無しさん
09/10/27 22:40:27
>>261
C#言語仕様14章より
列挙型とは、名前付き定数のセットを宣言する固有の値型 (4.1 を参照) です。

269:デフォルトの名無しさん
09/10/29 17:49:39
C#でネット通信するとき
Webproxy=NULL;
にすると通信がすっごく早くなるのですが、これを使う(プロクシを使用しない)ことによる問題はありますか?
プロクシ通さないと繋がらないPCはおいといて、通常の環境での話です


あと、たとえばWebで
じゃんけんゲームをcgiで作ったとします

ボタンが3つあって、
Aを押すとグー
Bを押すとチョキ
Cを押すとパー

ボタンを押すと相手もランダムに手を出し勝負するという単純なものです


cgiの内部的には、Aというボタンが押された、という情報を受け取って表示をしていることは分かるのですが

C#のアプリ側で
そのAというボタンが押されたという情報を送って、帰ってくる結果を取得するにはどうすればいいのでしょうか?

WebBrowserを用いて直接ボタンを押す以外でです。
わかりにくかったらすいませんorz

270:デフォルトの名無しさん
09/10/29 17:59:09
HTTPがわかればわかる

271:デフォルトの名無しさん
09/10/29 18:05:58
申し訳ありません
説明不足でした

HTTP Header
というもので、どういう情報を送信すればいいかはわかってます
上のやつで
ボタンAが押された場合は
Agaosareta
という情報が送られるようになっています


でも、どうやって送信、取得すればいいのかがわからなくて・・・・・

272:デフォルトの名無しさん
09/10/29 18:08:44
実際の通信の中身が知りたいのか、HTTPRequest等の使い方が知りたいのかどっちよ

273:デフォルトの名無しさん
09/10/29 18:24:17
URLリンク(www.dotup.org)
こんな感じです

おおげさですが
専用ブラウザみたいなものを作りたいといえば通じるようなきがします
元々はシンプルなものを、ローカル側で見やすくして表示するじゃんけんゲーム専用のブラウザを作りたいです

ブラウザなら、ボタンを押せば勝手に情報が送信されますよね?
そして、かえって来た情報を元にテキスト(勝ち負け)を表示


でも、それをローカルのアプリからやる方法がわからないんです
この絵で言うパー(じゃんけんの手を送信)を送信
と、結果を取得(じゃんけんの結果を取得)

がよくわかりません・・・
結果さえ取得できれば
勝ちならif(win)~
負けならelse if(rose)~

みたいにして結果のぺーじをかえればいいんだとは思いますが

274:デフォルトの名無しさん
09/10/29 18:30:21
>>271 からPOSTするときの内容もわかってると思っていいの?
って面倒だからググってきた。
URLリンク(www.atmarkit.co.jp)
こういうのでわかる?

275:デフォルトの名無しさん
09/10/29 18:36:29
>>273
WebClient もしくは HttpWebRequest を使う(前者のほうが簡単)
URLリンク(www.atmarkit.co.jp)
ブラウザで表示するのとは別のアドレスを用意するか
送信する引数に勝敗だけ返してねーってフラグでも付けて送る
例えばGETでやるならこんな感じかね(非ブラウザからパーを送信)
URLリンク(www.hoge.co.jp)

CGI側は value の内容から勝敗を決定し単純に勝敗のみを文字で返す
クライアントはダウンロードした文字の内容で結果を判断する

WebClient wc = new WebClient();
byte[] data = wc.DownloadData("URLリンク(www.hoge.co.jp)");
Encoding enc = Encoding.GetEncoding("Shift_JIS");
string html = enc.GetString(data);
if (html == "勝ち") { } else { }

276:デフォルトの名無しさん
09/10/29 18:37:02
>>274
まさにこれです
本当にありがとうございました

このじゃんけんゲームは自分で作ったので
それぞれ

paagaosareta
guugaosareta
tyokigaosareta

という内容を送信するということは分かってます

それを見てふ、と思ったのですが
googleで検索ボタンを押したときや、たとえば2chに書き込む情報を送るなんていう場合は
色々POSTされているんだと思いますが
そういうのを調べる方法はあるのでしょうか?

277:デフォルトの名無しさん
09/10/29 18:44:52
FirefoxでHTTP Live Headersアドオン入れるのが手軽

278:デフォルトの名無しさん
09/10/29 18:49:03
って中身もか、、、HTTPわかりゃいい、、、というかcgi書いてるなら中身わかると思うが

279:デフォルトの名無しさん
09/10/29 18:52:51
いったいHTTPのことは分かってるのか分かってないのかどっちだ

280:デフォルトの名無しさん
09/10/29 18:53:47
入門書の通り作っただけなのでさっぱりわかってません・・・・
動いた!わーい!

って感じです・・・・


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch