[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 11/03 02:41 / Filesize : 281 KB / Number-of Response : 1021
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part122



1 名前:デフォルトの名無しさん mailto:sage [2016/07/10(日) 00:34:49.34 ID:2YnnBC7F.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part121
echo.2ch.net/test/read.cgi/tech/1465958068/

■関連スレ
C#, C♯, C#相談室 Part91
echo.2ch.net/test/read.cgi/tech/1467142749/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/

764 名前:デフォルトの名無しさん [2016/07/27(水) 22:37:45.18 ID:pJ8tB8/o.net]
>>751
分からん

765 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 22:38:34.53 ID:6z8lEswI.net]
>>752
浪速路天然

766 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 23:19:43.22 ID:p+3UVHIp.net]
つまり列挙されてるその文だけでは判断できないってこと
普通はそのあとに各要素の説明があるだろうから、それを理解すれば理解できるだろ

767 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 00:05:30.97 ID:4tYWmnlA.net]
>>741
一瞬、C言語にもfloat型あるだろとツッコミたくなった

768 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 00:18:11.23 ID:EWHrIMj5.net]
コード書くような人間が気にする話じゃないだろ・・・
「せんもんしょってわかりにくい」って話をここでやられても困る
絵日記でも書いていればいいのに

769 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 00:50:55.01 ID:pr8LoEdR.net]
スレチの話題で荒らすいつもの二人だよ
スルーしてあげるのが礼儀

770 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 01:05:38.22 ID:vKlBZ5Y0.net]
ポケモンGOもC#なんだってな、夢があるぜ、俺たちもC#で夢を捕まえようぜ

771 名前:デフォルトの名無しさん [2016/07/28(木) 01:55:00.65 ID:YnIVD/Jb.net]
ARよりVRよりゲームブックの方が好きでヤンス

772 名前:デフォルトの名無しさん [2016/07/28(木) 04:18:55.56 ID:nVexoxG1.net]
>>758
Unityエンジンなんだよね

俺はとりあえずC#勉強中でとにかくコンソールアプリだのなんだの
簡単なプログラムひたすら書いて練習中
早くUnityに移りたいわ



773 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 07:15:47.10 ID:4tYWmnlA.net]
さっさとUnityやった方が良くね?

774 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 07:32:58.85 ID:17Ger5zU.net]
せっかくプログラム学ぶなら簡単なコードなんか書かずにアルゴリズムとか勉強した方がいい。
理解しきれなくても、そういう物があるのかって飛ばし読みでもいいから。

775 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 08:33:56.89 ID:HOqPKVFD.net]
勉強したいだけならMSDNを参照しながらプロジェクトオイラーをいくつか解いたらいい
しょうもない教材よりずっとまともだ

776 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 10:50:27.45 ID:thYKdQLU.net]
>>760
両方並行でやるべし

777 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 11:49:57.00 ID:u3D/77tc.net]
URLが一緒のページを取得するのってどうしたらいいですか?
検索TOPとある商品名で検索したページのURLが同じって結構ありますね?
こういうときどうやってそのページを取得したらいいかが分かりません。

778 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 11:58:11.83 ID:thYKdQLU.net]
URL欄が一緒なだけでPOSTしてんじゃないの?
具体的にどこか言ってくれりゃどうやってるかの説明を、、、
いやそれスレ違いか

779 名前:デフォルトの名無しさん [2016/07/28(木) 12:09:25.83 ID:mqNuQE+S.net]
あるいはajaxで一部分だけ書き換えているか

780 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 12:09:26.56 ID:GiL0oVOn.net]
他にはajaxでとかね
とにかくブラウザの開発者ツールとかでネットワークのやりとり見て
それを真似ればいい

781 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 12:20:27.54 ID:thYKdQLU.net]
サーバ側でCGIとか書くとわかりやすいけどねえ
あとFiddlerいじり倒すとかね

782 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 15:34:54.64 ID:DTdt61p8.net]
今は違うかもしれんけど職安のHPがそうだったね
何が困るって個別の案件をブックマークしたくても出来ないのなw



783 名前:デフォルトの名無しさん [2016/07/28(木) 16:29:09.11 ID:nVexoxG1.net]
>>762
>>763
>>764

とりあえず本当にプログラミング初心者だし
Unity目的とはいえアプリとかも作ってみたかったから
とりあえずC#に絞ってやってたけど
そろそろ慣れてきたからUnityも始めるわ

アルゴリズム系の本だと
「珠玉のプログラミング」気になってんだけど
あれ見本C++なんだよね
でもまあ読んでみるわ

784 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 17:14:38.76 ID:rgmTi30o.net]
俺は逆にCGIの方で苦戦してるんだけどさ
ASP.NETのWebAPIテンプレートでLong-Pollingやりたいんだけど、複数のクライアントに同時に対応するにはどうすればいいの?
一人が長い処理をしてたら他の人が全部待たされちまう・・・・

785 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 17:40:49.12 ID:DlRIQQvn.net]
>>772
マルチスレッドで出来ないのか?

786 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 17:53:47.20 ID:rgmTi30o.net]
>>773
それをどうやるのかが全くわからないのさ

787 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 17:57:01.07 ID:DlRIQQvn.net]
>>774
全然分からないって何でよ?
バックグラウンドワーカーとか使うんじゃないのか?俺はやった事はないが

788 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:05:30.82 ID:rgmTi30o.net]
>>775
単にバックグラウンドワーカーに処理を渡したところで、次の接続を受け付けてくれないべ・・・・

789 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:13:04.54 ID:tTvh6wGg.net]
GUI:入力受付
Threadまたはバックグラウンドワーカー:実処理
これだけのことだろ
中身の設計が思いつかないってことなら本人がなんとかしないとな

790 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:17:29.81 ID:thYKdQLU.net]
どのバージョンかによるが、、、非同期とコールバック組み合わせないとならん場合もあるでしょ

791 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:25:07.46 ID:u3D/77tc.net]
>>766
www.vix-shop.net/
ここなんですけど一般映画で例えば
「アイドル」や「宇宙」で検索しても
URLはwww.vix-shop.net/cgi-bin/GE_search.cgiのままです。

792 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:37:19.00 ID:thYKdQLU.net]
>>779
まずPOST でのデータの送り方覚えないと
ちなみにそこはGETでも受け付けてるようなので
www.vix-shop.net/cgi-bin/GE_search.cgi?searchWord=%B1%A7%C3%E8
とかも使えるw



793 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:43:03.29 ID:Q3wqMOUo.net]
>>777
GUIなんてないWebAPIの話なんだけど・・・・

794 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 18:58:01.20 ID:u3D/77tc.net]
>>780
POSTとは?
聞いた事がありません

795 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 19:01:52.91 ID:pr8LoEdR.net]
ggrks

796 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 19:04:35.28 ID:aJtBkQkO.net]
>>782
そもそも何をやろうとしてるのかな
そのサイトの検索語入れるとこソースを表示で中見ると
formタグにmethod="POST" とあるはず
要は、httpのbody部に、データを入れるやり方だよ

797 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 19:05:52.97 ID:u3D/77tc.net]
>>784
新商品が更新されたら知りたいんですよ
手動だと面倒だしちょっとネットサーフィン中毒なんで

798 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 19:09:24.97 ID:yrUkDYgp.net]
>>785
まあググれば解決すると思うけど
アクセスはhttpclientとか使うのか
ブラウザコントロールでやりたいのか
ま、コントロールでもPOSTのやり方はググればわかる

799 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 19:45:45.27 ID:u3D/77tc.net]
>>786
URLからサイトのhtmlを取得できますよね?
この行為をpostって言うんですか?

800 名前:デフォルトの名無しさん [2016/07/28(木) 20:05:23.05 ID:lAEBso/O.net]
本当にネットサーフィン好きなのかよ
その書き込みしてレス待つより
「html post」で検索するほうが早いだろ

あ。釣りか

801 名前:デフォルトの名無しさん [2016/07/28(木) 20:06:16.31 ID:Wpo+Mip0.net]
まだやってた

802 名前:フか []
[ここ壊れてます]



803 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 21:37:03.73 ID:R2qBJTW+.net]
>>775
そこはBackgroundWorkerじゃなくてTaskを挙げるべきだろう。

804 名前:デフォルトの名無しさん [2016/07/28(木) 22:43:31.38 ID:Wpo+Mip0.net]
ロングポーリングよりSignalRとか使った方がええと思います

805 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 22:56:11.39 ID:2GN50rVu.net]
>>772,775
ASP.NETならそもそもHTTP待ち受けはIIS(とかのWEBサーバ)がやってるわけで...
同一ページのアクセスはその段階で直列化されてたような

806 名前:デフォルトの名無しさん [2016/07/28(木) 23:57:48.94 ID:5EVYihUb.net]
眠いんだけど寝てもいい?

807 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 00:02:33.34 ID:OxTdh/vF.net]
>>793
よかよ

808 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 06:08:39.05 ID:GLjiQeve.net]
PJ炎上して寝れないけど寝たい

809 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 06:51:29.36 ID:uWy0vwUK.net]
>>795
マジレスすると
にちゃんやる暇あるなら寝ろよ

810 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 07:38:41.84 ID:zrK2CDRT.net]
個人でC#のプログラム作る分にはASP.NETとか勉強しなくてOK?
サーバーサイドのプログラミングって仕事以外でする事ある?

811 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 08:01:36.71 ID:tqzOdaPO.net]
>>797
何がしたいかによるだろ

812 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 11:20:12.48 ID:vOn8ke2v.net]
特に指定なく C# という場合は
Windows GUI アプリかゲームだろうから
ASP.NET はいらない

サーバーサイド云々はそれこそ本人次第



813 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 17:05:58.82 ID:Gibe9JYDk]
mschartに関しての質問です
マウスオーバーで十字のカーソル(赤い線)をチャート上に表示して、
チャートエリアから離れたらカーソルを消すという動作を実装しようとしてるのですが、
X軸もしくはY軸どちらかのカーソルが消えずに残ってしまうという問題が発生しています

//カーソル表示
private void chart1_MouseMove(object sender, MouseEventArgs e)
{
var mousePoint = new Point(e.X, e.Y);
chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true);
chart1.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, true);
}

//カーソルの消去
private void chart1_MouseLeave(object sender, EventArgs e)
{
chart1.ChartAreas[0].CursorX.SetCursorPosition(Double.NaN);
chart1.ChartAreas[0].CursorY.SetCursorPosition(Double.NaN);
}

CursorX.SetCursorPositionを先に書くとX軸のカーソルだけが消えて、
CursorY.SetCursorPositionを先に書くとY軸のカーソルだけが消えます。

Windows10 64bit、Community2015、.Netのバージョンは4.6.0です。
解決方法を知っている方いませんでしょうか?

814 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 18:03:03.25 ID:9BR4Vk9Y.net]
mschartに関しての質問です
マウスオーバーで十字のカーソル(赤い線)をチャート上に表示して、
チャートエリアから離れたらカーソルを消すという動作を実装しようとしてるのですが、
X軸もしくはY軸どちらかのカーソルが消えずに残ってしまうという問題が発生しています

//カーソル表示
private void chart1_MouseMove(object sender, MouseEventArgs e)
{
var mousePoint = new Point(e.X, e.Y);
chart1.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true);
chart1.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, true);
}

//カーソルの消去
private void chart1_MouseLeave(object sender, EventArgs e)
{
chart1.ChartAreas[0].CursorX.SetCursorPosition(Double.NaN);
chart1.ChartAreas[0].CursorY.SetCursorPosition(Double.NaN);
}

CursorX.SetCursorPositionを先に書くとX軸のカーソルだけが消えて、
CursorY.SetCursorPositionを先に書くとY軸のカーソルだけが消えます。

Windows10 64bit、Community2015、.Netのバージョンは4.6.0です。
解決方法を知っている方いませんでしょうか?

815 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 18:11:53.86 ID:qq3QrmSR.net]
>>801
C#はNaNの値が曖昧だったというか確定させられなかった気がする
カーソルをVisible=falseにするのはできないの

816 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 18:28:47.64 ID:9BR4Vk9Y.net]
>>802
System.Windows.Forms.DataVisualization.Charting.Cursorクラスには
Visibleプロパティないみたいなんですよねー
ttps://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.cursor.position(v=vs.110).aspx
ここ見ると、To programmatically remove a cursor, use this property to set the position of the cursor to NaN.
って記述があって、カーソル消すにはNaNをセットせよって書いてあるんですが、
どうも片方セットするともう片方が反映されなくなるみたいで・・・
デバッグで見ると値自体はセット出来てるんですけどね

817 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 18:36:22.75 ID:w3xz7na7.net]
>>803
If this axis value does not exist, the cursor will not be displayed.
ってあるから表示されるとしたら.Netのバグなんだがw
他のイベントとかが割り込んで数値が変わっているとか?
表示後に数値確認してみて両方ともNaNのままならそのやり方ではどうしようもないってことになる

818 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 18:51:29.65 ID:9BR4Vk9Y.net]
とりあえず、適当に値を代入して値が書き換わったこと、
指定した位置にカーソルが表示されたことを確認
その後両方にNaNを代入して両方とも値が書き換わったことを
確認したが、反映されるのは最初に代入した方だけ
なんか内部の処理で片方がNaNならカーソルは表示されていないから
何もする必要はないみたいな判定してる気がしてきた・・・
これは、どうしようもないパターンかもしれんな

819 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 19:19:07.42 ID:9BR4Vk9Y.net]
>>804
表示の変化後に数値確認してみたが、両方NaNになっているにも
かかわらず片方表示されてるね
こりゃ、.netのバグ確定かー
バージョンも最新にしてみたけど治らず
これはカーソル機能使わない方向で進めるしかないか

820 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 19:26:04.92 ID:w3xz7na7.net]
チャートは使わないからわからないがNaN以外で軸外の数値を設定してみるとか
表示するカーソルが指定できるのなら見えないカーソルを指定するとか
最後はオーバーライドして自分で描画するとか、多分やり方は残っているw

821 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 19:35:16.17 ID:9BR4Vk9Y.net]
>>807
infinityに設定したら消せたw
意味的に間違っている気がするが、まあこれでいくか
ありがとうございます〜

822 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 20:41:17.53 ID:zrK2CDRT.net]
すいません、やっぱりPOSTがよくわかりません。
POSTというのはデータを送るための仕組みだと思いますが
あくまでほしいのはHTMLです、送ったっきりでそこからどうやって取得するんでしょう?



823 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 20:42:17.09 ID:Hap9jKPf.net]
>>809
read

824 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 20:44:36.55 ID:zrK2CDRT.net]
URL指定だと一瞬でできるんですが、昨日いったようにURLが変わらない場合
何を送ればいいんですか?そしてそのための関数は?
分からない事だらけで辛いです

825 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 20:44:37.49 ID:vzr1G1rn.net]
>>809
何がわかってないのかわかってないな

826 名前:デフォルトの名無しさん [2016/07/29(金) 20:45:01.65 ID:zrK2CDRT.net]
>>812
POSTの仕方も分からない
欲しいHTMLの取得方法もわからない

827 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 20:51:36.38 ID:zrK2CDRT.net]
ContentTypeってのが分からなすぎる…
説明見ても分からなかった

828 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 21:08:14.99 ID:rSICkP9m.net]
アプリの進行状況を示すものなんですが、タスクバーのアイコンに緑色で進行度を表すものってどう実装すればいいんでしょうか?
なんて呼ぶのかもわからないので調べようがありません

829 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 21:10:27.79 ID:Wk8+6TzI.net]
ここ↓は見た? とりあえずは丸コピで、エラーを取りながら少しずついじればいいと思うけど…
POSTでデータを送信する: .NET Tips: C#, VB.NET
dobon.net/vb/dotnet/internet/webrequestpost.html

830 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 21:11:14.13 ID:w3xz7na7.net]
>>815
www.atmarkit.co.jp/ait/articles/1508/26/news029.html

831 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 21:36:24.98 ID:xxKMuXxT.net]
>>741
書き手もよくわからないところをぼかして書く技術
三流学生の論文によく見る

832 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 21:39:04.85 ID:zrK2CDRT.net]
>>816
req.ContentType = "application/x-www-form-urlencoded";
これが意味不明
何をしてるコードなの?



833 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:01:30.68 ID:nnGDzY7D.net]
>>819
req≒リクエスト(お願い)するのは
ContentType≒送るデータの種類として、
application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです)

834 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:09:57.03 ID:nnGDzY7D.net]
>>818
>>714
これはぼかすというより分かりやすい文章を書こうという意識の問題じゃないかな。
その例文を書いた人に句読点やカンマの使い方の勉強をお勧めしたくはなるね。

C#には様々な制御文がある。具体的にはif文,繰り返しのfor文にwhile文などがある。
C#には様々な基本データ型がある。具体的にはint型、float型、C言語にはないがstring型などがある。

※最後のは書き手の凡ミスじゃない?流石に。

835 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:30:07.57 ID:xxKMuXxT.net]
句読点って別に定義ねーし
あったとしてもコンパイルエラーでねーし
付けたとしてもやっぱりわからないと思うんだよね

836 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:32:27.18 ID:5/zFF/Os.net]
"C言語には無いが"って文言が不要なのよね

837 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:39:29.01 ID:zrK2CDRT.net]
>>820
データの種類???htmlにも種類があるの??
それとウェブのフォームって、このフォームはボタンとかテキストボックスのこと?
ちょっと意味が分からなすぎる

838 名前:デフォルトの名無しさん [2016/07/29(金) 22:52:06.56 ID:S2lGFzNF.net]
プログラミング学び初めて思ったのは
プログラマって教えんのへたじゃね?ってことだな
もちろん上手い人はいるだろうけど。
Cとかだと教える側の練度が高いから
逆にC#系の本とかより分かりやすかったり

いい本にめぐり会えて
なんとか身につきはじめたからよかったけども
そらプログラマ増えんわと。
ムラ社会だろうし自分の仕事を減らさないようにする
インセンティブが働くのはしょうがないと思うけど
もうちょっと言い方ってもんがあるだろうと正直思うわ。

初心者の戯言ですが。

839 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 22:54:15.18 ID:lSBZ6dND.net]
その本全部の問題かもしれんが、切り取った部分はどうでも良いから読み飛ばす部分だよな
書いている方も読んでいる方も気が抜けまくりで永遠に推敲されないのかもしれんね

840 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 23:08:16.62 ID:Va3DyJwE.net]
>>825
> ムラ社会だろうし自分の仕事を減らさないようにするインセンティブが働く
穿ち過ぎw

C言語でも分かり難い本は山程あったが、出てから年月が経ってる分出版された本は多い。そして、淘汰されて良書が生き残ってる状態。
対し、C#は後発でほぼMSだけなのと、Webで済ませる人が多くなって本が売れなくなったからか、そもそもそんなに多くの本が出版されていない。
後、近年は推敲があまい本が増えた気がする。

841 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 23:14:55.27 ID:Hap9jKPf.net]
C#勉強したいなら「スッキリ分かるjava入門」の無印と実践を買ってjava覚えて、ネットでC#の追加機能勉強するのが一番いい希ガス

842 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 23:38:32.44 ID:zrK2CDRT.net]
データの種類、フォーム
みたいに主語がない用語ほど何の事言ってるか分からない事ってないだよね…
こういうのほんと嫌い…



843 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 23:49:14.99 ID:Hap9jKPf.net]
>>824
application/x-www-form-urlencoded
multipart/form-data
のどちらかを指定すればとりあえずいいよ
おまじないだと思って

上はテキストのみ、下はファイルもあり

844 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 23:55:17.41 ID:OxTdh/vF.net]
>>829
そのレスも何言ってるか全くわかんねーぞwww

845 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:00:10.40 ID:ukjq/gdc.net]
>>831
送るデータの種類、このデータとは何のデータなんでしょう?

846 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:01:50.81 ID:uyw/ ]
[ここ壊れてます]

847 名前:q1V9.net mailto: >>832
text,bin
[]
[ここ壊れてます]

848 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:03:50.06 ID:6YLFMraq.net]
>>832
それが主語と何か関係あるのか?

849 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:07:47.65 ID:cua4PELF.net]
>>832
検索ボックスにあなたが入力した単語とか
(それがサーバーに伝わらないと、サーバーは検索できないよね?)

850 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:09:03.62 ID:uyw/q1V9.net]
とりあえず2chにC#から書き込んでみたら?

851 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:18:22.92 ID:ukjq/gdc.net]
>>835
application/x-www-form-urlencoded multipart/form-data
これは何でしょうか?こういうデータは入力したデータと関係あるんですか?

852 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:22:44.25 ID:crIAC8Sk.net]
C♯なんて音楽の時間にしか使わないよ。



853 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:23:51.16 ID:crIAC8Sk.net]
>>837
そもそも<form>〜</form>って何か分かる?

854 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:23:56.09 ID:ukjq/gdc.net]
冗談とかじゃなくて本気でわからない
フォームで使う情報がおまじないってどういう事???
フォームって恐らくブラウザの枠のことですよね?
これで使う情報??ピンとこないな

855 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:24:35.50 ID:uyw/q1V9.net]
>>840
何をしたくてこれが分からない
これをまとめてみようか

856 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:25:46.46 ID:ukjq/gdc.net]
>>839
え?なんのフォームか言ってくれないと分からない…
フォームってカタカナだったからブラウザの枠の事かと思ったんですけど
だから主語だって言ったのに…

857 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:26:25.03 ID:ukjq/gdc.net]
>>841
いやだから主語がないからなんのフォームなのかが分からないんですよ

858 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:28:57.63 ID:crIAC8Sk.net]
>>843
2ちゃんねるには何を使って書き込んでるの?スマホ?パソコン?アプリ?

859 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:29:19.00 ID:0mFWMzps.net]
>>843
「主語」の定義が何か考えろ
プログラミングやる前に小学校の国語からやり直せ

860 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:30:18.84 ID:uyw/q1V9.net]
2chのform部分のhtmlソース見てみようぜ
簡単にするとこうなる

<form method="POST" accept-charset="Shift_JIS" action="echo.2ch.net/test/bbs.cgi">
 <input type="submit" value="書き込む" name="submit">
 名前:<input name="FROM">
 E-mail:<input name="mail">
 <textarea name="MESSAGE"></textarea>
 <input type="hidden" name="bbs" value="tech">
 <input type="hidden" name="key" value="1468078489">
 <input type="hidden" name="time" value="1469805944">
</form>

861 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:31:36.37 ID:ukjq/gdc.net]
>>845
主語がないではなくて主語が明確ではないという表現が正しいな

862 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:31:48.97 ID:crIAC8Sk.net]
>>845

ひとまず、「フォームを、フォームが」の前に、「ウェブサイト」が何かの認識が足りない気がするのね。



863 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:33:24.43 ID:0mFWMzps.net]
>>847
だからお前の言う「主語」の定義が間違ってるから勉強し直せ

864 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:34:47.38 ID:uyw/q1V9.net]
1行目から解説していくよ

POSTメソッド、文字コードはSJISでecho.2ch.net/test/bbs.cgiに以下のデータを送ります
このボタンが押されたら書き込みます
名前のテキストボックス
メールのメキストボックス
本文のテキストボックス
tech板に書き込みます
1468078489スレに書き込みます
時間は1469805944です(1でもOK)

name=valueをエンコードしてデータを送信する

865 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:35:56.93 ID:uyw/q1V9.net]
APS.NETの前にHTMLの弁ようして来い

866 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:36:39.81 ID:ukjq/gdc.net]
>>846
<input type="submit" value="書き込む" name="submit">
submitがだぶってる気がするんですけどこれはどういうことですか?
おそらくこれボタンの事でしょうけど…


action="echo.2ch.net/test/bbs.cgi";
ここはURLではなくてactionでいいんでしょうか?

分からない事だらけでなかなかPOSTのC#による実現は難しいな

867 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:38:36.01 ID:uyw/q1V9.net]
>>852
C#関係ないから
いいからHTMLの勉強しろ
C#はそのあとだ!

868 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:39:18.98 ID:6YLFMraq.net]
>>852
スレチ
Web制作板にでも行ってこい

869 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:40:06.40 ID:ukjq/gdc.net]
>>853
関係あるだろうが
htmlの動作をc#を対応させてんだよ

870 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:40:40.51 ID:uyw/q1V9.net]
>>852
typeって言うのは種類
テキストボックスとかコンボボックスとか送信ボタンとか
で、type=submitは送信ボタンですよって意味
nameはデータの名前
name=valueで鯖にデータが送信されるから今回は
submit=書き込み
と鯖に送信される

871 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:42:19.44 ID:6YLFMraq.net]
>>855
主語(笑)といい、てにをはといい…

872 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:43:36.39 ID:uyw/q1V9.net]
>>855
何偉そうに言ってんだよ無知
わざわざ解説してやってんのに
いいから黙ってHTMLスレに行ってこい
今はC#は関係ない

今のお前は包丁使えないのに料理店開きたいって言ってるようなもんだぞ



873 名前:デフォルトの名無しさん [2016/07/30(土) 00:45:30.99 ID:ukjq/gdc.net]
>>850
文字コートってのもよくわからないんだけどこっちはS-JISのつもりで送ったってことは
S-JISのコードを送るってことですよね?なら文字コードだけ渡されてもS-JISかどうかは判別できないんじゃないでしょうか?

874 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:46:22.28 ID:6YLFMraq.net]
>>859
スレチ

875 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:49:54.74 ID:WsjdSta8.net]
>>859
文字コートってのはhtmlに埋め込まれたS-JISとかの領域のことだから送られてきたらそこに文字を書き込めるようになってるんだよね
だから判別しなくても大丈夫になってる

876 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:50:20.58 ID:crIAC8Sk.net]
そもそもASP.NETだっしょ。ASPでC#ならまーね。

>>820
これに主語をたそう。

私(ウェブブラウザー)がリクエスト(お願い)するのは、送るデータの種類として「ウェブのフォームで使われる情報です(urlエンコード済みです)」

req≒リクエスト(お願い)するのは
ContentType≒送るデータの種類として、
application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです)

ここで言う「私」というのが、ウェブブラウザで表示しているページのことです。

877 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:51:16.35 ID:crIAC8Sk.net]
まー、言いたくなかったが、釣だろ(笑)

878 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:53:09.67 ID:uyw/q1V9.net]
文字コート

879 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:53:35.54 ID:uyw/q1V9.net]
これは釣りだわ
真面目に相手しなけりゃよかったわ

880 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:55:09.75 ID:6YLFMraq.net]
>>862
あいつ、主語と修飾語の区別ついてないからwww

881 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:56:14.77 ID:yLsVqD35.net]
>>865
お前は愛に溢れすぎ

882 名前:デフォルトの名無しさん [2016/07/30(土) 00:57:56.56 ID:ukjq/gdc.net]
>>861
S-JISで解釈できる領域への通知なんですね、分かりました



883 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:08:16.57 ID:ukjq/gdc.net]
>>862
なんとなく分かるよ
それをブラウザの代わりにC#にやらせるんだよね?


ContentType≒送るデータの種類として、
application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです)

ここがちょっとわかりくいね
そもそもウェブのフォームで使われる情報をって当たり前の事では?
これらのデータを送るから処理して下さいという意味なのに、種類もくそもあるの?という疑問が湧きました
どうぞ

884 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:11:11.88 ID:6YLFMraq.net]
>>869
スレチ

885 名前:デフォルトの名無しさん [2016/07/30(土) 01:14:33.94 ID:ukjq/gdc.net]
>>870
スレチ厨はもういいよ
寝たら?

886 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:16:22.02 ID:crIAC8Sk.net]
>>869
どうぞ、釣りは失せろでございますわよ。

887 名前:デフォルトの名無しさん [2016/07/30(土) 01:20:32.96 ID:ukjq/gdc.net]
>>872
釣りじゃないんですよ

送るデータの種類=application/x-www-form-urlencodedってことは
もしかして区分があるってことですか?
例えばテキストボックスの情報はA群、ボタンを押したという通知はB群みたいなことなんでしょうか?

888 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:22:18.00 ID:6YLFMraq.net]
>>873
HTMLはスレチ

889 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:23:23.88 ID:ukjq/gdc.net]
>>874
そんな器用な分別ができてたらこんな初心者スレで聞かねーよ
もう色んな事がごっちゃになってるんだからここで聞かせろ

890 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:29:46.30 ID:crIAC8Sk.net]
>>873
>>875

>>1
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

891 名前:デフォルトの名無しさん [2016/07/30(土) 01:31:57.96 ID:ukjq/gdc.net]
俺の勘違いか

application/x-www-form-urlencoded≒ウェブのフォームで使われる情報です(urlエンコード済みです)

htmlにはフォーム以外の部分があって、その区分もまた別にあるんですね
俺が言ってたのはフォームの中でのさらに小さい区分でしたね、そういうことではない

ですよね?

892 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:37:01.32 ID:6YLFMraq.net]
>>877
Web制作
echo.2ch.net/h



893 名前:p/ []
[ここ壊れてます]

894 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:38:45.00 ID:ukjq/gdc.net]
>>878
粘着してまで書き込みしたい???
寝ろよ

895 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:40:14.97 ID:WsjdSta8.net]
>>877
htmlの中のformがurlエンコードされたものですよって教えるためのものだよ
他の部分は関係ない

896 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:45:56.67 ID:crIAC8Sk.net]
>>878
はC#のプログラムは作ったことが有って、今後のためにASP.NET覚えたいと思って、
サンプルのサイトを見てるけど、意味がわからないってこと?

それなら、今見ているサイトのアドレス晒して。

897 名前:デフォルトの名無しさん [2016/07/30(土) 01:49:42.31 ID:ukjq/gdc.net]
>>880
formがurlエンコード、こういう分かりにくい表現は好きじゃないな
formの情報がURLとしてエンコードされますよってことだから
URLなんて書いちゃったらホームページのURLとこんがらがるでしょ
説明のときはもっと分かりやすく!

898 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:52:48.60 ID:crIAC8Sk.net]
>>882
釣りマジで失せろでございますよ。
「説明のときはもっと分かりやすく! 」?
何様のつもりだテメエ失せろやボケがでございますよ。

899 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:53:31.20 ID:ukjq/gdc.net]
application/x-www-form-urlencodedは
こういう感じでエンコードしましたよっていいつつそれが識別子にもなってるってパターンですよ

ようは「この愛の歌をみんなに届けたい〜」とかいいつつそれ自体がラブソングの
歌詞みたいな事でしょ?秀逸なたとえ

このスレの人はね、色々知ってるんだろうけど用語をもっとさかみ砕くなり
分かりやすさ重視で教えてあげないと伝わらんと思うよ?

900 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:56:18.85 ID:crIAC8Sk.net]
I Banned.

901 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 01:57:06.31 ID:ukjq/gdc.net]
>>881
ASP.NETの話なんてしてないでしょ…

902 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:01:39.03 ID:ukjq/gdc.net]
>>883
釣りならこんな勘違いの連続をしない
最終的には理解できたんだから



903 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:10:12.43 ID:6YLFMraq.net]
>>887
予備知識としてHTMLの理解が必要

Web制作
echo.2ch.net/hp/

904 名前:デフォルトの名無しさん [2016/07/30(土) 02:20:35.83 ID:ukjq/gdc.net]
コピペしたら動くんだろうけど俺にとっては深い理解が大変
dobon.net/vb/dotnet/internet/webrequestpost.html

Streamっていうのがどうなってるのかがよくわからないな
//送信するデータを書き込む
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
ってことでURLエンコードした文字列を送るコードだけど
さっきのreqはどこいった?reqもストリームに乗せなくて大丈夫?
でそのコードはどこだ…

905 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:21:35.08 ID:ukjq/gdc.net]
>>888
そんな器用に分けられないからもうここでいいだろ
そんな器用に分かるような人間なら最初から理解してるっつの
しつこいなお前は

906 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:22:44.26 ID:crIAC8Sk.net]
>>887
>最終的には理解できたんだから

おめでとう。

>>884
>ようは「この愛の歌をみんなに届けたい〜」とかいいつつそれ自体がラブソングの
>歌詞みたいな事でしょ?秀逸なたとえ


おめでたい。

907 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:23:42.69 ID:ukjq/gdc.net]
後はreqStream.Write(postDataBytes, 0, postDataBytes.Length);
だとストリームに書き込んだだけで、送ってはいないよね?
ストリームというのは通路とか情報を送るトンネルみたいなイメージだけど
そのトンネルに情報を置く=writeするだけで
もう動くの?スイッチみたいなことが必要な気がするんだけど…

908 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:28:52.99 ID:ukjq/gdc.net]
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();

しかも次の瞬間Closeしてる…
情報がちゃんと送られてからCloseしないとダメでは?
という疑問が湧いた。

コード自体は紛れもないエラーも何もないコードだけど
動作の仕組みが分からないからコードを見て考えると疑問がいくらでもわいてくる
Streamというのがどんな動作をする機能なのか俺には分からない

それを一つずつ教えてほしい
知識より考え方のほうが大切だから、それをみんなにもわかって欲しい

909 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:33:08.25 ID:ukjq/gdc.net]
俺はいま躓いてるのは
Streamね、Streamが流れという概念のある機能だと漠然とした認識ではダメだ
C#ではStreamがどういう動作をするのか、それを追及しないとコードを理解できない
というわけで何故Streamのコードが動くのか説明してください誰か

910 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:34:29.62 ID:ukjq/gdc.net]
今までコピペプログラマだったからこういう深い理解が必要なんですよ
コピペして動くじゃダメなんです、そのからくりやら仕組みをちゃんと理解しないとダメ

911 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:35:31.89 ID:ukjq/gdc.net]
C言語のStreamとC#のStreamは恐らく違うだろうからまずそこからかな

912 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:36:08.56 ID:ukjq/gdc.net]
皆さん答えて下さいよ、今僕以外に質問してる人はいないんだから迷惑ではないはずです
誰もいない深夜に集中して質問してるんです、これは迷惑ではないですよね?



913 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:37:26.37 ID:ukjq/gdc.net]
少なくとも俺と同じ疑問を持つだろうなって思う人もいると思うので有益だとは思います
Streamについて詳しく教えて下さい、ちゃんと返答もします

914 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:40:09.16 ID:WsjdSta8.net]
>>893
Closeするときに送信する処理が行われてるんだね
簡単だね

915 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:41:42.81 ID:ukjq/gdc.net]
>>899
Closeの中身を見れば分かるってことですか?
どうなってるか教えて下さい
どういうメソッドがあるんでしょう?

916 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:43:34.60 ID:ukjq/gdc.net]
コードを見ただけで流れが分かるというメリットを考えたら
Closeの中に書く意味とかあります?
可読性ではなくて、物語性というか…

917 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:45:37.77 ID:tQhYyiEg.net]
ID:ukjq/gdc もうあんたのレスは俺にしか見えてないよ…
そして俺からも…さようなら

918 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:48:23.16 ID:6YLFMraq.net]
>>899
キチガイに触んなすな

919 名前:デフォルトの名無しさん [2016/07/30(土) 02:53:02.00 ID:ukjq/gdc.net]
>>903
たった一行のレスを何レスにもわたって延々としてるあなたのほうがキチガイだと思いますが…
あなたも質問したいならすれば?そうして空気が変われば俺は身を引きますよ
答えてくれる人がいるから質問してるんです、たった一行をずっとなんて空しい行為はやめなさい

920 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 02:55:38.70 ID:ukjq/gdc.net]
これ

Streamっていうのがどうなってるのかがよくわからないな
//送信するデータを書き込む
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
ってことでURLエンコードした文字列を送るコードだけど
さっきのreqはどこいった?reqもストリームに乗せなくて大丈夫?
でそのコードはどこだ…

この疑問は結構素朴だと思うんですけど、こういう質問は何がいけないんでしょう?
ストリームは最後のトンネル、そのトンネルにreqがいないのは何故?
その仕組みが分からないという事です、おかしいですか?

921 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:01:14.64 ID:crIAC8Sk.net]
>>知識より考え方のほうが大切だから、それをみんなにもわかって欲しい
御託より調べようと手を動かすほうが大切だから、それをID:ukjq/gdcにもわかって欲しい

プログラムは主に英語という言語がベースになっています。C#もそうです。
Streamが道だと思っていたことこそが、あなたの知識量云々より、【あなたのプログラムへの取り組み姿勢】に問題が有ることの現れです。
私が小学生の頃にプログラムを始めた時に、意味のわからないことは辞書で調べましたよ。参考のプログラムを実際に実行させましたよ。
Streamは道じゃありません。【流れ】です。これは英語の辞書を引けば分かります。

922 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:03:54.83 ID:crIAC8Sk.net]
reqStream.write

リクエスを送る流れに書き込む。
これでデータが送られないと思う理由が分からなん。

御託はいいからアドレス晒してよ。



923 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:05:06.31 ID:0RZw9HDW.net]
釣りじゃないなら
一度メンタルの病院行った方が良いんじゃないかな
割と本気で

924 名前:デフォルトの名無しさん [2016/07/30(土) 03:10:04.37 ID:6eJMfqp8.net]
釣りに決まってんだろm9

925 名前:デフォルトの名無しさん [2016/07/30(土) 03:11:48.37 ID:ukjq/gdc.net]
>>908
釣りと思う理由は?

926 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:13:58.90 ID:crIAC8Sk.net]
>>909

こいつ「ID:ukjq/gdc」が「釣れてると思って喜んでる」のを「あや釣る」のも面白いんだよwww

927 名前:デフォルトの名無しさん [2016/07/30(土) 03:17:44.12 ID:ukjq/gdc.net]
>>899の人はCloseで送信処理している!と言っていて
>>907ではWriteで送信処理まで終わっているといってますね
意見が分かれちゃった、この時点で有意義な質問だったと思えますが…

928 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:20:32.60 ID:crIAC8Sk.net]
>>912
送信処理まで終わっているといってますね

どこに?

929 名前:デフォルトの名無しさん [2016/07/30(土) 03:22:02.11 ID:ukjq/gdc.net]
>>913
reqStream.write

リクエスを送る流れに書き込む。
これでデータが送られないと思う理由が分からなん。

930 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:28:13.89 ID:crIAC8Sk.net]
>>914


>「リクエスを送る流れ」に「書き込む」。
>これで「データが送られないと思う理由」が分からん。

あなたの認識が正しいなら、
「データが送られない」=「送信処理まで終わっている」?

日本語のお勉強をし直しては。

931 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:41:03.36 ID:ukjq/gdc.net]
System.IO.Stream reqStream = req.GetRequestStream();
なんだrequest用のストリームか、ここでreq仕様にしてるのか

932 名前:デフォルトの名無しさん [2016/07/30(土) 03:42:07.56 ID:ukjq/gdc.net]
>>915
だから送られるタイミングですよ
あなたの言い方だとWriteした時点で送信されるみたいに捉えられますよ



933 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 03:53:53.45 ID:crIAC8Sk.net]
あなたの言い方だとWriteした時点で送信されるみたいに捉えられますよ

>「だから送られるタイミングですよ」
>「送信されるみたいに捉えられますよ」

どこらへんでそう捉えたの?

「だから送られるタイミングですよ」

これはあなたが今しがた(今も?)疑問に思っていたことって意味ですか?

934 名前:デフォルトの名無しさん [2016/07/30(土) 04:02:28.99 ID:ukjq/gdc.net]
だめだこの人
揚げ足取ることしか考えてないね
こっちは単にStreamの疑問知りたいだけなのにさ…
なんか残念です、まー>>899が正解ってことならそれでいいです

935 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 04:02:46.60 ID:4BSXkGIU.net]
すんゲー伸びてると思ったらまた例の人かよ
C#に関係ない質問を延々と続けられると迷惑
もう次スレのテンプレに触るなって書いたほうがいいな

936 名前:デフォルトの名無しさん [2016/07/30(土) 04:54:15.58 ID:mo3DDFsV.net]
>>827
Cに関しては本当にそうなんでしょうね。

Cを本格的に学ぼうとするとそら大変なんでしょうけど
プログラミングの仕組みを理解する上では
つまり浅い段階の理解についてはC関連のものが分かりやすかったもんで

C#は逆に海外のサイトとかの方がわかりやすいかもですた
とりあえず形になるよう頑張ります

937 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 04:54:55.79 ID:crIAC8Sk.net]
>>919
>こっちは単にStreamの疑問知りたいだけなのにさ…

じゃあ、お望み通り正しく説明します。

1.Streamというのは流れという意味の単語です。
2.RequestStreamというのは「リクエストが流れる」ものです。
3.RequestStreamのインスタンスにリクエストを書き込むにはWriteメソッドを呼び出します。

4.Writeメソッドが呼び出されたからといって、即座にリクエストが流れるとは限りません。

5.ただし、リクエストが即座に流れることも有ります。
5-1.即座に流れる場合は、RequestStreamのバッファー領域がリクエストする情報より小さい時です。
5-2.加えて、RequestStreamのAutoFlush(自動洗浄)が有効な場合です。

6.プログラマーは、任意のタイミングでRequestStreamをFlushして、随時リクエストを送信を促すことも可能です。
6-1.多くの場合はFlushするとリクエストは即座に送信されます。
6-2.しかし、RequestStreamの実装の如何によって、即座に送信されないこともあります
6-3.これはRequestStreamを実装した側の都合によって、適切に無視することが許されているからです。
6-4.故に、このFlushを用いてリクエストが今送信されたかどうかをプログラマーが気にすることは愚かです。

7.RequesStreamは、リクエストストリームをこれ以上使用しなくて良い段階に来た際には、Closeメソッドを呼び出す必要があります。
7-1.Closeメソッドを呼び出した際にバッファーが空でなかった場合の挙動は、言語やその言語のジャージョンによって異なります。
7-2.例えば、(黎明期のJavaなどは)Flushしていないデータが欠落することなどもあり得たわけです。
7-3.ただし、C#であればCloseをすれば問題なくリクエストの送信は開始され、やがて終了します。
7-4.故に、このCloseを用いればWriteしたタイミングでリクエストが流れているかいないのか、はたまた
    Flushしたタイミングでリクエストが流れているのかいないのか、
    気にしなくとも良いのです。
7-5.但し、膨大なリクエストを逐次的に長い期間にかけて渡さなければならないような場合には、
    Flushを行いながら処理を行っていく必要があります。

938 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 04:59:45.17 ID:crIAC8Sk.net]
>>922
「ID:ukjq/gdc」と「ID:mo3DDFsV」の質問は向こう1日間は受け付けません。
質問する前に、一旦落ち着いて整理して下さい。その後縁があって質問があれば、回答を行います。

939 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 07:44:01.40 ID:SD9Rxi9F.net]
>>825
自分から勉強しようと思う気持ちがないと続かないよ
別にプログラマーに限ったことじゃないけど

940 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 08:40:01.82 ID:RyCiYMxC.net]
dobon.net/vb/dotnet/internet/webrequestpost.html
は、もう新規の人には紹介しない方が良いのでは。

HttpWebRequestは古臭い仕様で面倒臭い。
今から覚えるのなら、便利で分かりやすいHttpClientの方が良いだろう。

941 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 08:41:01.11 ID:RyCiYMxC.net]
.NET TIPS:
HttpClientクラスでWebページを取得するには?[C#、VB]
www.atmarkit.co.jp/ait/articles/1501/06/news086.html

942 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 09:03:14.71 ID:RyCiYMxC.net]
しまった、>>926はPOSTしてないから適切じゃなかった。
HttpClientは、まだ解説がしてるところが少ないのが難点だね。特に日本語の。

Web API よりも HttpClient に注目したい(しばやん雑記)
blog.shibayan.jp/entry/20120822/1345563275



943 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 10:31:45.32 ID:uyw/q1V9.net]
おはよう
>>919
本当に釣りじゃないんだな?
それならとりあえずここに来い
俺がここで相手してやるから
echo.2ch.net/test/read.cgi/hp/1468250963/

APS.NETの前にHTTP、HTMLの基本を覚えた方がいい

944 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 11:17:49.72 ID:ukjq/gdc.net]
仕事(プログラマではない)でWireshark使ってるんでパケットの流れには興味あるんです
釣りでは決してありません
>>922
詳しいレスありがとうございます。


5.ただし、リクエストが即座に流れることも有ります。
5-1.即座に流れる場合は、RequestStreamのバッファー領域がリクエストする情報より小さい時です。
5-2.加えて、RequestStreamのAutoFlush(自動洗浄)が有効な場合です。

でもなぜこんな詳細に分かるのかというか、どういう本読めば分かるんですか?

6.プログラマーは、任意のタイミングでRequestStreamをFlushして、随時リクエストを送信を促すことも可能です。

とめてから一気に送るみたいな安全なコードもかけるんですね、でしたらそのコードみてみたい


故に、このFlushを用いてリクエストが今送信されたかどうかをプログラマーが気にすることは愚かです。
????????
知りたい場合は?

945 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 11:18:22.50 ID:ukjq/gdc.net]
>>928
もうHTMLの話はしない

946 名前:デフォルトの名無しさん [2016/07/30(土) 11:28:06.60 ID:xUJaRIFl.net]
C#を取り扱っている先輩方、ご質問があります。
今、SQLserverのDBを用いてコーディングしています。その時に、双方向にそれぞれのリストを持たせた場合、
多対多の関係になると学びました。また、そのコードを記述し動かすと自動で中間テーブルを作り、
1対多、(中間テーブル)、多対1の関係性をDBに作ってくれるまでできました。
ただ、中間テーブルを作成したものの値が入りません…何かアドバイスお願いします。

public class A {
public int Id {get;set;}
public List<B> b;
}

public class B {
public int Id {get;set;}
public List<A> a;
}

static void main(){

A a = new A(){};
a.b.Add( new B { Id = 1 });

B.b = new B(){};
b.a.Add( new A { Id = 1 });
}


このようなクラスで中間テーブルまでは作成されます。
NULLの原因としては、AではBのリストを、BではAのリストをnewで入れてないからなのかなとは思うのですが、
new A { Id = 1, <bのリストに値を入れる記述> }
上記の<>で挟んだ部分をなんと記述したらいいのかわからないです…

947 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 11:47:47.91 ID:5Lcdfshx.net]
>>931
単にクラス定義をこうするだけではダメかな?

public class A {
public int Id {get;set;}
public List<B> b = new List<B>();
}

public class B {
public int Id {get;set;}
public List<A> a = new List<A>();
}

948 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 12:02: ]
[ここ壊れてます]

949 名前:50.80 ID:UF7V38Hh.net mailto: >>932
あ、すみません
コンストラクタでのnewを記述し忘れていました
それは問題ないです。またつまっているところが違ったと気付いたので、今から書き直してみます…
[]
[ここ壊れてます]

950 名前:デフォルトの名無しさん [2016/07/30(土) 12:11:56.19 ID:gt3sWNMS.net]
public class C {
public List<A> a;
public List<B> b;
}

public class A {
public int Id {get;set;}
public List<B> ListB;
public C c; // 外部キー
public A(){ b = new List<B>();}
}

public class B {
public int Id {get;set;}
public List<A> ListA;
public C c; // 外部キー
public B(){ a = new List<A>();}
}

CがAとB、AがB、BがAのリストを持っている構造にしたいです。
その際に、CにAddする時に、

static void main(){

C c = new C();
c.a.Add( new A { Id = 1, ListB = ????? });
}

< Cの持つリストa >に情報を入れる時の< ListB >の部分で詰まっています。ここをうまく解決できれば、中間テーブルにも
値が入るのではないかなと考えています。
List<B> tmpB = new List<B>();で定義したtmpBを入れてみても中間テーブルに値は反映されていませんでした。
A, B それぞれに、それぞれの外部キーを設定する必要があるとかでしょうか?

951 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 12:21:23.10 ID:5Lcdfshx.net]
>>934
一旦シンプルにしたほうがいい。
クラスCの定義が変だと思う。

//これはAとBの関係を保つためのクラス
public class C {
public A a;
public B b;
}

public class A {
public int Id {get;set;}
}

public class B {
public int Id {get;set;}
}

952 名前:デフォルトの名無しさん [2016/07/30(土) 12:32:22.73 ID:VbvJ+5P0.net]
>>935
つまり、Cはa, b に関係を持つが集約の関係性ってのがおかしいってことでしょうか
一応、そこの関係性は崩せると思いますが、ABの関係性は崩すと大きくクラス設計に関わってきそうです…

public class C {
public A a;
public B b;
}

public class A {
public int Id {get;set;}
public List<B> ListB;
public C c; // 外部キー
public A(){ b = new List<B>();}
}

public class B {
public int Id {get;set;}
public List<A> ListA;
public C c; // 外部キー
public B(){ a = new List<A>();}
}

static void main(){

C c = new C();
c.a = new A { Id = 1, ListB = ????? };
}



953 名前:デフォルトの名無しさん [2016/07/30(土) 12:34:07.18 ID:VbvJ+5P0.net]
連投ですみません。
どちらかと言うと、多対多で中間テーブルが自動生成させるのを達成したい感じです…
この状況で A B C のテーブルは自分で作ることになりますが、
A B の中間テーブルは自動で作られると思うので…

954 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:07:12.61 ID:RyCiYMxC.net]
>>934
c.a.Add( new A { Id = 1, ListB = c.b });
でダメなのかい。

後、
c.a = new List<A>();
c.b = new List<B>();
も抜けてそうだけど。

955 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:27:18.34 ID:cua4PELF.net]
ListのインスタンスをA,Bのコンストラクタで作る(A,BのインスタンスごとにListを持つ)つもりのようだけど
作ったListにはどんなAやBをAddしていくつもり?

AはBのListを持ち、そのListに入るBを作るにはAのListを作りそのAのListに…
…となると終わりはないけど、リストが空でも問題ない?
空で問題ないなら、new A するときに ListBに何かする必要はない
(というか、ListB = ??? とかしちゃうと、Aのコンストラクタでの new List<B>()が無駄になるよ)

956 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:27:52.31 ID:NxOPfq9t.net]
>>929
漏れらは、何十冊も本を読んでいるから、よく知っている。
素人の知識・勉強量では無理。どの資格にも受からない

皆Linux板では、SSDへの書き込み回数を減らして、寿命を延ばすため、
通常は5秒毎にフラッシュされるところを、15〜30秒にしている人も大勢いる

システムが信用できないからって、システム終了時に5分かけて、フラッシュを3回やってから、
電源を切っている人もいるくらい

OSに書き込み要求を出すというのと、デバイスが書き込んだあとに、
知らせてもらうというのは異なる。
常に、デバイスが本当に書き込んだかどうかを、疑うべき

957 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 13:59:52.29 ID:vwndqmNO.net]
>>938
まさにそこです

>>939
そうなるんですよね
別に空でも問題ないです
ヌルも許容する予定なので

ただ…それだと中間テーブルには値が入らず…ってなるので
何をどうしたらいいのかわからないってなっているところです

958 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 14:35:50.97 ID:cua4PELF.net]
>>941
AのListBにはどんなBを、BのListAにはどんなAを入れるつもり?
それがはっきりしないと、前には進まないような…

それと…
…ごめん、こちらが勉強不足だからだけど

>双方向にそれぞれのリストを持たせた場合、
>多対多の関係になると学びました。

って、どういうことだろう…
今やってるみたいに、モロにお互いを循環させることなのかな…?

あと、
>また、そのコードを記述し動かすと自動で中間テーブルを作り、
>1対多、(中間テーブル)、多対1の関係性をDBに作ってくれる

というそのコードがネットで見れるのなら、それを教えてほしいんだけど…

959 名前:デフォルトの名無しさん [2016/07/30(土) 14:42:59.78 ID:kE9N+QT2.net]
>>941
AとBは講師と学生の関係ですね
講師は複数の学生を教え、学生は講師を複数持つ
みたいな関係にするために多対多になっています
講師1に対して学生A,B,C,Dを検索でき、学生Aに対して講師1,2,3を検索できるような感じです

コードファースト開発を行っていてどこかで見たんですよね…。ただ、今回の内容については書いてなかったんです。
実際データベースにアクセスしているのは、三つしかないんですけど、
4つ目の講師・学生のIDを照らし合わせたテーブルも生成されます。
試しにコーディングしてSQLServerに繋げてみると謎のA・Bのテーブルが出来るとおもいます

960 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 14:44:17.66 ID:crIAC8Sk.net]
public class C {
  public List<A> a;
  public List<B> b;
  public C(){ a = new List<A>(); b = new List<B>();}
}

public class A {
  public int Id {get;set;}
  public List<B> ListB;
  public C ListC{get;set;} // 外部キー
  public A(){ ListB = new List<B>();}
}

public class B {
  public int Id {get;set;}
  public List<A> ListA;
  public C ListC{get;set;} // 外部キー
  public B(){ ListA = new List<A>();}
}

int id = 0;
C c = new C();
c.a.Add(new A{Id = ++id, ListC=c});
c.b.Add(new B{Id = ++id, ListC=c});

こんなんかな。。。何がしたいのかは想像できず^^;

961 名前:デフォルトの名無しさん [2016/07/30(土) 14:45:01.77 ID:kE9N+QT2.net]
www.atmarkit.co.jp/fdotnet/ef4basic/ef4codefirst02/ef4codefirst02_02.html
ここの話ですね。ただデータ追加などについて調べても出てこないという現状です

962 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:10:28.22 ID:cua4PELF.net]
>>945
そういうことなら
1.A、BのList(それぞれlistA、listB)をつくる
2.listA、listBのそれぞれにA、BのインスタンスをAdd
  (この段階でのA、BそれぞれのListB、ListAの要素は空)
3.listAの各AのListBにlistBからランダムに選んだBをAddして、
   同時に、選んだBのListAに追加先のAをAdd
…で、いいんじゃないかな?



963 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:20:04.96 ID:cua4PELF.net]
こんな感じ?
List<A> listA = new List<A>();
List<B> listB = new List<B>();

for (int i = 0; i < 30; i++) //とりあえずどっちも30
{
 listA.Add(new A { Id = i });
 listB.Add(new B { Id = i });
}

Random rnd = new Random();

foreach (A a in listA)
{
 foreach (B b in listB)
 {
  if (rnd.Next(2) == 1)
  {
   a.ListB.Add(b);
   b.ListA.Add(a);
  }
 }
}

964 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:21:01.60 ID:crIAC8Sk.net]
>>943
成る程、もともと凄くいい線いっていたと思うよ。敢えて日本語でやったので、元のa/b/cと対応させてみて欲しい。
味噌はthisじゃないかしら。

public class キー {
  public List<講師> 講師陣;
  public List<学生> 学生達;
  public void Add(講師 追加する講師, 学生 追加する学生) {
    追加する講師.外部キー = this;
    追加する講師.教えてる学生達.Add(追加する学生);
    講師陣.Add(追加する講師);
    
    追加する学生.外部キー = this;
    追加する学生.師事する講師達.Add(追加する講師);
    学生達.Add(追加する学生);
  }
  public キー(){ 講師陣 = new List<講師>(); 学生達 = new List<学生>();}
}

public class 講師 {
  public int Id {get;set;}
  public List<学生> 教えてる学生達;
  public キー 外部キー{get;set;}
  public 講師(){ 教えてる学生達 = new List<学生>();}
}

public class 学生 {
  public int Id {get;set;}
  public List<講師> 師事する講師達;
  public キー 外部キー{get;set;}
  public 学生(){ 師事する講師達 = new List<講師>();}
}

965 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:22:48.83 ID:crIAC8Sk.net]
>>948
int id = 0;
var 参照キー = new キー();
var 講師A = new 講師{ Id = ++id };
var 講師B = new 講師{ Id = ++id };
var 学生A = new 学生{ Id = ++id };
var 学生B = new 学生{ Id = ++id };
var 学生C = new 学生{ Id = ++id };

// 学生Aは講師Aの生徒、学生Bは講師Bの生徒、学生Cは講師Aと講師Bの生徒

参照キー.Add(講師A, 学生A);
参照キー.Add(講師B, 学生B);
参照キー.Add(講師A, 学生C);
参照キー.Add(講師B, 学生C);

966 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 15:50:04.23 ID:crIAC8Sk.net]
すまん。

外部キーが間違ってるね>俺
これ多分、学生/講師の、外部キーがまるっと要らない。
多対多の関係を付けるだけなんでしょ???

ideone.com/6VOBUg

967 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 16:26:38.39 ID:Nl6hflxM.net]
中間テーブルが自動作成とか、Entity Frameworkでコードファーストの話か?

968 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 16:56:54.46 ID:zScUrdBS.net]
>>946
やはりそうなりますよね
それしか思い付かず…しかもこれ永遠ループするんじゃないかなと思ってます
リストAの中のBの中のAの中の…と

>>947
ネクストって知らない関数なので家についてから見させていただきます
ありがとうございます

>>948
>>950
すごく長いコードありがとうございます
上と同じく家についてから見させていただきます
thisの関係など詳しく見る必要がありそうです

そちらのコードで言うキーを外部キーにしているところは、
最後に使う予定があるので残しておこうかと考えてます
今回困っているところは言われている通りリレーションなどです

>>951
まさにそれです
自動作成される中間テーブルがあるのですが
そこに要素が入らなくて何故かなと…

969 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 19:53:40.78 ID:qHhyCsUA.net]
>>952
合ってるか分からないけど、Listじゃなくて、ICollection型のvirtualなプロパティ書かないといけないんじゃない?

970 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 20:28:38.81 ID:Nl6hflxM.net]
>>952
その場合は、クラスAの定義にBの外部キーとなるための項目(BId)が必要なはず
クラスBにもAへの外部キー(AId)が必要

971 名前:953 mailto:sage [2016/07/30(土) 22:10:21.29 ID:Nl6hflxM.net]
n:nのリレーションだったな
>>954はとりあえず忘れて
軽く試してみたけど、EF6.1.3だとちゃんと中間テーブル作成されて値も入る
(IDがオートナンバーになったから、指定した値ではないが)

DbContextの定義とデータ追加してるコードどっかに晒してみたら?

972 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 23:10:44.57 ID:flo7DdHH.net]
.net 4.0 4.5 4.5.1は既にサポート終了してたんだな。2.0はシェアの多さからまだサポート続いてるな。



973 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 23:18:52.42 ID:3zYE6jXl.net]
>>956
4.5ならともかくうちの会社は4.0のアプリが多いから互換チェックが大変だわ

974 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:28:55.80 ID:fxXPyGX0.net]
C#って配列を初期化しないとエラーがでるけど、これって初期化してからじゃないと
配列の実態を生成できないからでしょうか?C言語だとint a[100];の時点で作られるから
エラーがでないと思ってますけどそういうことでしょうか?

975 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:49:03.77 ID:DiaxdW8Z.net]
>>958
値型の配列を参照型の配列の違い
C#でも
fixed char name[30];
を使えば値型配列を作れる(ただしC等とのDLL連携用に作られたものなので普通はしない)
{"a","b","c"}を例にすると画像みたいになる
sssp://o.8ch.net/ewpj.png

976 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:49:48.65 ID:VGHB1MRw.net]
初期化という言葉はC#では意味が曖昧になる状況が多いから、正しく理解するまでは使わないほうがいい
C#で配列を作るとき
int[] a = new int[100];
1-1. int[]型のローカル変数aを確保する。
1-2. int[]型で100要素をもつ配列オブジェクトを生成する。このとき要素の値はすべて既定値(0)で自動的に”初期化”される。
1-3. 1-2.で作ったオブジェクトの参照をaへ代入する。
Cならこうだ
int a[100] = {0};
2-1. int[100] 型のローカル変数を確保する。この時点で100要素分確保されている。
2-2. aの全要素を0で”初期化”する。

で、>>958が初期化と呼んでいるのは(1-2.+1-3.)と2-2のことだろう。
これを理解してれば何も不思議はないはず。

977 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 09:52:22.29 ID:DiaxdW8Z.net]
ちなみに文字列型は参照型だから上みたいになるけど、値型ならこうなる
ここでは例として{1,2,3}を使う
sssp://o.8ch.net/ewpn.png

978 名前:デフォルトの名無しさん [2016/07/31(日) 10:22:20.63 ID:fxXPyGX0.net]
>>959
Cの場合スタックとヒープで容量いっしょ?www
C#との違いに驚いた

979 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:30:11.19 ID:JeOzAbnd.net]
sssp見えない

980 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:32:05.95 ID:DiaxdW8Z.net]
スタックは仕組み上固定長じゃないと駄目な訳
構造体が継承できないのもそこら辺の問題

もし値型が継承しちゃったら固定長じゃなくなるよね?

981 名前:デフォルトの名無しさん [2016/07/31(日) 10:38:24.44 ID:fxXPyGX0.net]
>>959
あ読み間違いか
ヒープ領域にa,b,cがあるかと思った
→ってことねw

982 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:42:24.41 ID:DiaxdW8Z.net]
>>965
ヒープ領域にa,b,cがあるよ

スタックは固定長じゃないといけないのに、もし文字列にスタックがあったら
string s="a";
s="aa";
みたいな事したらぶっ壊れるぞ



983 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:46:58.10 ID:VGHB1MRw.net]
>>964
んなことはない
C99ならスタックに可変長配列置けるぞ
そもそもスタックはコールスタックという可変長のデータ領域を扱うためのものなんだから仕組み上何も無理はない

984 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:50:21.98 ID:DiaxdW8Z.net]
>>967
あ、マジで
すまん俺の勘違いだわ

985 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:54:01.04 ID:fxXPyGX0.net]
>>966
え?…
Cのほうが納得できない
char[3];
char[1]に文字が入ってると思うんですけど?
だってポインタではないんだから

986 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 10:59:59.51 ID:DiaxdW8Z.net]
>>969
文字じゃなくて文字列
"a"は文字、'a'は文字列

987 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:00:21.69 ID:DiaxdW8Z.net]
ごめん逆
"a"は文字列、'a'は文字

988 名前:デフォルトの名無しさん [2016/07/31(日) 11:02:36.94 ID:fxXPyGX0.net]
>>970
あ文字列ならポインタってことになるけど
ポインタの場合はスタックは1個では??
なんで3個あるんでしょう?それが謎

989 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:06:42.62 ID:nqVHC6AT.net]
Cの話は他のスレで

990 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:07:17.06 ID:VGHB1MRw.net]
>>972
{ "abc" }なら文字列一個だけど{"a","b","c"}なら文字列3個でしょ

991 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:08:30.96 ID:DiaxdW8Z.net]
>>972
スタックに"a"へのポインタ、"b"への"ポインタ、"c"へのポインタが詰まれている

992 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:09:22.00 ID:fxXPyGX0.net]
配列が出てきたから勝手にそれで文字列を実現するって解釈してしまったなぁ
すいません



993 名前:デフォルトの名無しさん [2016/07/31(日) 11:09:59.85 ID:fxXPyGX0.net]
>>974
なるほど文字列3つってことですね
勝手に文字列を実現するみたいな解釈してました
"abc"ではないんですねすいません失礼しました

994 名前:デフォルトの名無しさん [2016/07/31(日) 11:26:30.84 ID:tdu9NojY.net]
おはようございます。930です。今からコードを見直してみようと思います
>> 953
ちなみにdb.Entry(student).State = EntityState.Unchanged;みたいなのしていますか?
これをしないと片方の追加だけなのに、もう片方に新規で追加されていきます。DBcontextをまとめた処理が
public DbSet<Subject> SubjectInfo { get; set; } public DbSet<Teacher> TeacherInfo { get; set; } public DbSet<Student> StudentInfo { get; set; }

追加時は下記です。
public Teacher Create( Teacher teacher ) {
Teacher newTeacher;
using( var db = new DbContext() ) {

// 外部キーで設定している科目と関連付ける処理
User subject = ( from d in db.SubjectInfo where d.Id == Teacher.User.Id select d ).First();
db.Entry( subject ).State = EntityState.Unchanged;

newTeacher = new Teacher { Name = teacher.Name,
Subject = subject,
studentLists = teacher.studentLists // これを入れるとMultiplicity constraint violated.
// db.Entry(???).State = EntityState.Unchanged;でエラー
};
if ( newTeacher.studentLists != null) {
foreach ( Student student in newTeacher.studentLists ) {
// db.studentInfo.Attach( student );
// db.Entry( student ).State = EntityState.Unchanged;
}
}
// アクセスするところを紐づける
GetTable( db ).Add( newTeacher );
db.SaveChanges();
}
return newTeacher;
}

995 名前:デフォルトの名無しさん [2016/07/31(日) 11:30:03.17 ID:tdu9NojY.net]
新しい作成される中間テーブルにデータが入ってなかった理由は、
newTeacherを作っているときに、studentLists = teacher.studentListsを入れてなかったからだとは思ったんですが、
そうすると今度は片方のテーブルに影響を与えない…って処理でエラーが出るように。

アドバイスを頂いたところは今から見直します

996 名前:デフォルトの名無しさん [2016/07/31(日) 11:41:40.57 ID:9Z6DmbVF.net]
ハイ次w

997 名前:デフォルトの名無しさん [2016/07/31(日) 11:47:57.52 ID:tdu9NojY.net]
連レスですみません
これって、講師と学生を単純に考えた場合、講師を先に入れると学生のデータはなく、学生を先に入れると講師のデータがない。
そのような状況になると思います。
その時に、中間テーブルには講師のデータはあるけども…!学生のデータがない!関連付けれない!となるのでしょうか。
そのため、DBに値が入る順序としては、講師のデータが入る→学生のデータが入る→中間テーブルに関連する値が入る
こういう認識で良いのですかね

>>947
やりたいこととしてはそんな感じです。
その際に、中間テーブルに値を入れたい…!って状況です

>>975
一番包括するキーのクラスでAddを定義する感じでしょうか。
今コードを見てみたのですが、外部キーをそこで設定する必要がないのかなと思っています。(thisのとこ)
先に教えている学生を生成し追加して、講師に追加する…というところは参考にさせて頂きました。
そのおかげで、テーブルには入る様になりました!
ただ、>>978のようなエラーが出てきました…

998 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 11:57:52.20 ID:KfDsWSu1.net]
>>981
次スレよろ。

で、0..n対0..nの関係なら、生徒を持ってない講師が居ても良くて、中間テーブルにその講師は登場しないはずだよ。

999 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 12:12:35.28 ID:nqVHC6AT.net]
あれ?立てたのは別の人なのか?案内もないし

ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1469934170/

取り合えず立てた人乙

1000 名前:デフォルトの名無しさん [2016/07/31(日) 12:16:36.38 ID:tdu9NojY.net]
別回線で立ててコーディングに夢中で案内忘れていました…

>> 981
NULLを許容するかしないかって話ですよね
自分もそう思っているのですが…

DB扱うのって本当に難しいですね…

1001 名前:デフォルトの名無しさん [2016/07/31(日) 12:21:48.88 ID:9Z6DmbVF.net]
取り合えず立てた人チーすw

1002 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 13:03:24.52 ID:4EU300F7.net]
俺も良くわかってないが双方向でリストを持っているときっていつそれぞれのを結びつけるんだ?
それとも結びつけなくていいのか
Aを追加するときにBは居ないし逆もまた然りって永遠ループが頭の中で続くわ



1003 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 13:35:00.89 ID:4EU300F7.net]
書かれていることやろうとしても中間テーブルみたいなのは無理にとおせばできるけど
無限増殖問題か値が入らない問題が起きるぞ
なんで
>>954はできるんだ?コードが見てみたいんだが

1004 名前:デフォルトの名無しさん [2016/07/31(日) 13:39:55.24 ID:tdu9NojY.net]
>>953
レスを返し忘れていました。
確かに、AはCに対して外部キー設定をしていて、同様の扱いをするのにAはBに対して外部キー設定をしていないので、
そこが怪しい気もします

1005 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 13:59:51.45 ID:BZqbbjGS.net]
>>986
この辺参考にしたら?
www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

1006 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 15:08:27.13 ID:SlcEPNYS.net]
そもそも中間テーブルのクラス(エンティティ)は必要なのか?
そしてその中間テーブルCに対して、A,Bそれぞれから外部キー制約が必要なのか?

NOなら、中間テーブルの作成すらコードファーストで勝手にやらせるだけ

YESなら、Aのエンティティが持つのはBじゃなくてCのエンティティ、Bも同様

1007 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 15:15:13.16 ID:7sIN5pY9.net]
>>990
おっさんなんか勘違いしてないか
C has A
C has B
んでもってA has B, B has A
だからCは中間テーブルでないぞ
ややこしくあるのはA Bだけでしょ
Cは今回出てきてるけどただ持ってるだけで実際関係ないゾ

1008 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 15:42:51.77 ID:SlcEPNYS.net]
>>991
もともとA,Bで多対多のリレーションって話だったはずなんだが
なんか勘違いしてるってなら
>C has A
>C has B
>んでもってA has B, B has A
の条件でテーブル定義かエンティティクラスの定義書いてみてくれんかね

1009 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 15:59:25.30 ID:SlcEPNYS.net]
埋めるように雑談

EFって、to 0..Nのリレーションはできるけど to 1..N のリレーションは
相手方の1を強制(保障)する方法がない気がするんだが

つまり 1..N:1..Nはコードファーストでは実現不可能なんじゃないかと思うんだが

1010 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:05:53.41 ID:7sIN5pY9.net]
>>992
上にもあるけどこうじゃねぇの

public class C {
public int Id {get;set;}
public List<A> a {get;set;}
public List<B> b {get;set;}
}
public class A {
public int Id {get;set;}
public List<B> ListB {get;set;}
public virtual C c {get;set;}
public A(){ ListB = new List<B>();}
}
public class B {
public int Id {get;set;}
public List<A> ListA {get;set;}
public virtual C c {get;set;}
public B(){ ListA = new List<A>();}
}

static void main(){
C c = new C{Id=1}

// できるやつ。でもCA、CBの関係はあるけどABの関係がないから値が入らない
c.a.ListB.add(new B{Id=1, c=c});
c.b.ListA.add(new A{Id=1, c=c});

// できないやつ。逆も同様
c.a.ListB.add(new B{Id=1, c=c, ListB =???});
}

1011 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:11:54.97 ID:SlcEPNYS.net]
>>994
AがCとListBと両方同時に持ってるのか?
Aが直接持つB群と、Cを通じて持つB群と別のものなのか?

1012 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:22:22.34 ID:7sIN5pY9.net]
>>995
同じなんじゃないの
それを結びつけようと頑張ってるんだと思う
俺はそう捉えて悩んでる

科目一つに対して講師が複数居る
科目一つに対して生徒が複数居る
そんな状況で、講師と生徒を結びつけたいのだと…あれ?ってことはこれ

public class C {
public int Id {get;set;}
public A a {get;set;}
public B b {get;set;}
}
public class A {
public int Id {get;set;}
public List<B> ListB {get;set;}
public virtual C c {get;set;}
public A(){ ListB = new List<B>();}
}
public class B {
public int Id {get;set;}
public List<A> ListA {get;set;}
public virtual C c {get;set;}
public B(){ ListA = new List<A>();}
}

static void main(){
List<C> c = new C();
c.Add();
}
こんな感じにしたらシンプルなんじゃないのかこの問題



1013 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:28:58.96 ID:7sIN5pY9.net]
違うわ シンプルにできん
たぶん科目に対して講師及び学生をリストで持ってるんだ
そしてそれぞれ講師・学生が持つ要素が同じものを指し示してる

そんでもってそれを科目の要素としてそれぞれに追加する時に
片方の要素が存在してないからどうすりゃええの?ってなってんだわきっと

1014 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:29:55.38 ID:SlcEPNYS.net]
>>996
同じなら、AにCとListB両方は同時にいらない。DB的にはあってはいけない

だから>>990
CというエンティティがあればListBはいらない
ListBがあれば、Cはいらない
という内容のことを言ったつもりなんだが

1015 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:33:52.27 ID:SlcEPNYS.net]
いつのまにか
A,Bのリレーションとそのための中間テーブルCっていう話から
講師、学生、科目という三つの実体の話にすり替わってるな

元の要件整理しなおさんと話が進まん

1016 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:34:43.64 ID:5iBcOCRm.net]
じゃあちょっと話を整理してみましょうか

1017 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 16:37:40.65 ID:SlcEPNYS.net]
これ以上続けるなら次スレで
やりたいこととちゃんとしたエンティティの定義出して

で、この話題はスレとともに一旦終了

1018 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 21日 16時間 2分 51秒

1019 名前:1002 [Over 1000 Thread.net]
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
premium.2ch.net/
pink-chan-store.myshopify.com/


1020 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<281KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef