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


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

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



1 名前:名無C mailto:sage [2019/03/07(木) 06:35:41.12 ID:6L3KEJfe0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part141
mevius.5ch.net/test/read.cgi/tech/1544839627/
■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

761 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 08:58:10.52 ID:Q8AOfbVkd.net]
Java interoperabilityって何なんだよ…

762 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 09:30:59.37 ID:n4vre8LhM.net]
>>748
出来損ないは過去に葬った方が世の中のためだぁ

763 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 10:21:58.95 ID:vw5zJnlq0.net]
バージョンを頻繁に上げるのは、
成熟していないってことでは?

764 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 11:33:46.06 ID:4Mlb2ms50.net]
FrameworkからCoreに移行できないのはどういう場合ですか?

765 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 11:59:10.66 ID:25JpTCOf0.net]
え、winformはどうなるの??

766 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 12:06:04.60 ID:b+Ix+FO0a.net]
最近のmicrosoftかなり攻めてるな

767 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 13:10:26.59 ID:eYh/lhy30.net]
.net frameworkからcoreなんてどこかちょろっといじったらいいだけじゃないの?
VB6からVB.netほどの変化はないんだろ?

768 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 13:37:50.62 ID:9iRY6hHtM.net]
>>753
そんなワケのわからんもん使こて何かあったらどないすんねん!責任取れるんかい!
わりとこれ

769 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 13:46:35.16 ID:9CwYXDcE0.net]
別に移行しなくてもいいですけど保守には特別料金いただきまっせ



770 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 13:47:55.21 ID:Q8AOfbVkd.net]
>>756
Web FormsはほぼUI作り直し

771 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 13:50:03.67 ID:9iRY6hHtM.net]
あと技術的な最大の障害はWebFormsだろう
WebFormsは.NET Coreではサポートされてないし、される気配もない
既存資産の移行もさることながら、.NETドカタはWebForms頼りで標準的なWeb開発のスキルを持たない奴も多い
彼らはWebアプリケーションの開発が不可能になり、路頭に迷うことになる

772 名前:デフォルトの名無しさん [2019/05/07(火) 17:00:19.52 ID:1tK/VkfG0.net]
すまんが、Stream型って前の方だけメモリを解放するとか器用なことは出来ないの?

773 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:17:09.01 ID:9iRY6hHtM.net]
>>761
意味不明
お前の考えはどうでもいいから具体的に何が問題になっているのか、もしくは何が気になっているのか書け

774 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:23:08.04 ID:VnMa5nf90.net]
Stream型ってなんか確保してんの?

775 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:29:05.20 ID:n4vre8LhM.net]
Streamの実装によるだろ

776 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 21:03:30.48 ID:FJj2rymy0.net]
>>761
Streamクラスは抽象クラスだけど、MemoryStreamクラスを想定してるのかな。
何となくMemoryMappedFileクラスが要望に合ってるような気がする。

777 名前:デフォルトの名無しさん [2019/05/08(水) 21:27:25.44 ID:4kxgmlsqa.net]
C#でwindowsPCのマイク音量設定を設けたアプリを作りたいんですが情報がいまいち出てきません
今現在どのような方法が推奨として使われているのでしょうか

778 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 21:33:29.28 ID:UPhx/0uCM.net]
おとなしくNAudioと言うのを使いなさい

779 名前:デフォルトの名無しさん [2019/05/09(木) 20:00:37.76 ID:25KQckNoa.net]
>>767
ありがとうございます
調べてみます!



780 名前:デフォルトの名無しさん [2019/05/10(金) 07:09:33.41 ID:8h0VP8xa0.net]
RPgエディタみたいなタイルマップを配置する機能を作る場合、画像を配置するフォームは何が適切でしょうか?
前にも聞いた気がするんですが、レスを忘れてしまって、、、

781 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 07:45:25.60 ID:guXEw79XM.net]
モデリングソフトに決まってんじゃん
2Dでもプラグインあるからプロならモデリングソフト

個人製作ならエクセルで代用しとけ

ってスレ違うやん

782 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 07:46:35.31 ID:guXEw79XM.net]
いや、すまん、質問内容取り違えてたw
ピクチャーボックスで

783 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 08:14:45.00 ID:uov0WiW1d.net]
>>769
Panelを継承したカスタムコントロールのOnPaint内で描画する事だな

784 名前:デフォルトの名無しさん [2019/05/10(金) 12:26:08.70 ID:8h0VP8xa0.net]
>>771
ピクチャボックスですね
毎回忘れちゃうです

785 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 17:41:55.34 ID:ZtjlRqB/0.net]
質問するだけで自分でやらないから忘れるんだよ
>>772
継承させる意味が分からないしOnPaintならPanelでなくてもいい

786 名前:デフォルトの名無しさん [2019/05/10(金) 18:53:28.94 ID:8h0VP8xa0.net]
visual studioのhddへのアクセスは制限できますか?
激重です
SSDにしろって話ですけどね

787 名前:デフォルトの名無しさん [2019/05/10(金) 19:04:05.18 ID:8h0VP8xa0.net]
>>774
picturebox自体を何個も並べるんですか?
picturebox1つの中に複数の画像を並べるですか?

788 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:28:03.03 ID:tfYAY6pzM.net]
>>776
どっちでもいいよ
どのみち今の君のレベルで作ってもまともに使い物になるようなものにはならないから、うだうだ考えるより手の届く範囲で経験値を積んだ方がいい
行き詰まる頃にはだいぶレベルが上がってるはずだから、また作り直す
三周目くらいになればまともに作れるようになってるよ

789 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 19:30:30.41 ID:uRQk/IXU0.net]
3週でいけるのだろうか?



790 名前:デフォルトの名無しさん [2019/05/11(土) 12:14:17.95 ID:kDrnBD/r0.net]
低レベルな質問で申し訳ないのですが、循環バッファって凄い便利だから
全ての配列は循環バッファで実装すればいいと思うのですが、デメリットはあるんでしょうか?
Delete
Insert
Add
が全てO(1)で出来るって凄くないですか?

791 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:25:39.14 ID:E3skkYkSM.net]
>>779
俺は必要になったことないよ
どんなときにいいの?

792 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:30:42.30 ID:qR2J3ArJM.net]
下手の考えなんとかつってなー
高レベルになってから言ってくれ

793 名前:デフォルトの名無しさん [2019/05/11(土) 12:39:31.51 ID:td9YBJ3L0.net]
>>779
>***全ての配列は***循環バッファで実装

配列のままの方が良い場合もあるが
そうしたいならそうすればいい

ただし配列以外の構造が必要になるケースでは使えないぞ

794 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:56:33.31 ID:4CcYolMU0.net]
>>779
トークンリングとイーサネットの
違いを理解してから再度質問を

795 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:59:31.48 ID:aDjFJI/sa.net]
>>779
Addは、reallocationを考慮しても償却定数時間で出来そうだが
Delete, InsertがO(1)だというソースをくれ、「末尾」という指定がない以上任意位置だよな?
途中要素をDelete,Insertしたら要素の詰め直しが必要でO(N)になると思うんだが
O(N)になるならList<T>で十分という話になる

796 名前:デフォルトの名無しさん [2019/05/11(土) 13:05:46.01 ID:DR+jkhoz0.net]
続きはこちらでどうぞ

【O(n)】計算量の評価方法について【O(log n)】
https://mevius.5ch.net/test/read.cgi/tech/1363854937/

797 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 13:06:24.02 ID:aDjFJI/sa.net]
考え直したらQueueやStackのことを言っている気がしてきた
それらのデータ構造がもうあるんだからそれ使えば良いんじゃね

798 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 15:39:49.17 ID:8cYUuN//0.net]
すべての配列は〜というのが考え方が
そもそも乱暴で

目的に合わせてデータ構造を選ぶものじゃ

799 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 16:14:40.10 ID:MBpEq5nf0.net]
Visual C#で電卓を作ってます。
ある数字ボタンをクリックしたとき、(Button)sender).TextでTextran欄の文字を取得できますが
クリックではなく、キーボード入力で同様にしたいのですが、どうすればできますか?



800 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 16:26:29.83 ID:VR7g318H0.net]
>>788
KeyPressやKeyDownなどのイベント
ただし該当するコントロールにFocusされてないと反応しないのでフォームで全部受けるようにするとはかどる
https://dobon.net/vb/dotnet/form/keypreview.html

801 名前:デフォルトの名無しさん [2019/05/11(土) 17:24:06.36 ID:qy13k0f30.net]
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(@"C:\Users\◎◎\Desktop\volly.gif");
this.pictureBox1.Image = bmp;

パスについてなのですが、相対パスは使えないということがあるんでしょうか。相対パスだとパラメータが違うというエラーが出ます。
フォームアプリケーションなので、form1.csにコードを書いています
form1.cs
img(フォルダ)
└volly.gif
という構造になっています

しかし、img\volly.gif
だとエラーになります
何が悪いでしょうか。

802 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 17:26:35.03 ID:Q2bK8ZXg0.net]
>>790
.\img\volly.gifじゃね?

803 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 17:31:33.00 ID:vfaLavs00.net]
実行時のカレントフォルダーが合ってないと思う

804 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 17:56:52.10 ID:lpN0Lm9o0.net]
デバッガでブレイクしてイミディエイトウィンドウとかで
Environment.CurrentDirectory確認すると良いよ

805 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:25:33.06 ID:dxU2Wm5sa.net]
>>790
相対パスとかの以前の問題

実際の環境にimgフォルダが作られているか?
*.exeと言った実行ファイルのある場所を見てみたらいい

多分作られてないしその

806 名前:にgifファイルも作られてない []
[ここ壊れてます]

807 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:56:38.28 ID:VR7g318H0.net]
>>790
>>794を参考にするべきだけどパスの位置を確認したいのなら読み込む前のところで
MessageBox.Show(System.IO.Path.GetFullPath(@"img\volly.gif"));//指定しようとしているパスを入れる
とでも入れとけばその相対パスがどこを指しているのか絶対パスが表示される
相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる

808 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:09:02.07 ID:vfaLavs00.net]
>>795
> 相対パスはソースファイルの位置からじゃなく実行ファイルの位置から作られる
これは正しくないよ。その時のカレントフォルダが基準。
何もしていなければ多くの場合は実行ファイルの場所と一致するから、結果としてそうなることが多いけど。

809 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 19:52:49.57 ID:VR7g318H0.net]
>>796
それならexeと同じディレクトリのところから使うには
System.IO.Path.GetDirectoryName(Application.ExecutablePath)とか使って必ず絶対パスに直さないと危ないってことか



810 名前:デフォルトの名無しさん [2019/05/12(日) 10:29:51.59 ID:zQc98Y8H0.net]
Console.WriteLine(System.Environment.CurrentDirectory);
としても出力には何も出てこないのですか?
出てこないです
作業フォルダっていうのはform1.csとは別のファイルのことなんですね

811 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 10:48:00.86 ID:NzWVi3Qm0.net]
console覗くか
traceあたりに出力しないとでは

812 名前:デフォルトの名無しさん [2019/05/12(日) 10:52:27.58 ID:zQc98Y8H0.net]
おっ いけました
'2d_engine.exe' (CLR v4.0.30319: 2d_engine.exe): 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ja_b77a5c561934e089\mscorlib.resources.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。
これで正しいのかわからないですが、なんで実行ファイルがこんな場所にあるんでしょうか。プロジェクト内にあるのかと思ってましたが

813 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 10:53:02.25 ID:M17KJIhd0.net]
>>798
WinFormsアプリはそのままではConsoleを使用できない
Consoleを自分で準備すれば使えるが、通常は使わないかな

フォルダ(≒ディレクトリ)とファイルは違うぞ

814 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:02:52.23 ID:NzWVi3Qm0.net]
謎は解けた

815 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:03:02.94 ID:PIRDu/CH0.net]
>>800
その絶対パスは実行ファイルじゃない
その表示されているところにConsole.WriteLineで書き込んだ内容出てくるはず

816 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:04:19.53 ID:JwWGS0EoM.net]
空のコンソールアプリ作ってそこで実行して

817 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:06:21.31 ID:JwWGS0EoM.net]
そのgifファイルは実行ファイルが作られた場所に自動でコピーされてないので
コピーされるようにgifファイルの設定帰るしかない

818 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:08:55.17 ID:M17KJIhd0.net]
>>800
勘違いしてる。Console使わず、
MessageBox.Show( System.Environment.CurrentDirectory );
ってやってみてよ。

819 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:35:01.56 ID:1UlYWsgm0.net]
>>800
カレントディレクトリはexeのあるディレクトリとは別物だからです
System.AppDomain.CurrentDomain.BaseDirectory
を使ってください



820 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:42:27.50 ID:Zs5BDDrj0.net]
AllocConsole() してみなされ

821 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:46:33.54 ID:7nn+3/Jt0.net]
>>800
プログラムの実行ファイルがある場所とは別に、プログラムの実行時に「どのフォルダでプログラムを実行するか」という概念があるのは分かる?

822 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 11:49:29.62 ID:PIRDu/CH0.net]
先生多すぎて混乱してそうw

823 名前:デフォルトの名無しさん [2019/05/12(日) 13:55:38.46 ID:zQc98Y8H0.net]
混乱してるんで一度整理します

824 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 14:13:47.11 ID:PIRDu/CH0.net]
そもそもカレントディレクトリを表示させる必要があるのか?
画像をPictureBoxに表示するのが目的じゃなかったのか

825 名前:デフォルトの名無しさん [2019/05/12(日) 15:18:28.27 ID:zQc98Y8H0.net]
そうなんですが、そのために相対パスを設定したいんです
絶対パスでも別に不自由しないですが、ソフトを作るときは相対パスも使う

826 名前:ニ思うので []
[ここ壊れてます]

827 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:40:46.00 ID:Q+XtJRAz0.net]
>>790
VisualStudioでF5実行やデバッグをすると(何も設定を変えてなければ)ビルド出力先がカレントディレクトリになる
相対パスでエラーになる原因はビルド出力先にimg\volly.gifが存在しないから
なのでimg\volly.gifをビルド出力先にコピーしてやれば相対パスで読み込めるようになる

プロジェクトエクスプローラーでimg\volly.gifを右クリックしてプロパティを開いて
「ビルド時のアクション」を「なし」に変更
「出力ディレクトリにコピー」を「新しい場合はコピーする」に変更
これでビルドすると出力先フォルダにimg\volly.gifがコピーされるようになる

828 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:41:40.00 ID:CayLEbz10.net]
>>813
実は業務ではカレントディレクトリをあてにした動作はさせない
なぜなら制御できないから
なので相対パスをプログラムで取得したら
自分が基準とするディレクトリパスと自力で連結させて絶対パスにして使う

829 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:43:12.88 ID:Q+XtJRAz0.net]
画像ファイルがたくさんあって1こ1こ設定するのがめんどくさい場合は
imgフォルダを右クリックして同じようにコピーの設定をする
そうすれば1つの設定でフォルダごとまるごとコピーしてくれる



830 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 15:54:06.76 ID:0iYfvooEa.net]
まあ、そもそも特に理由がなければ画像ファイルはリソースに突っ込むべきだね。

どうしても生の画像ファイルを使いたいならソリューションエクスプローラーからプロジェクトに追加して
プロパティウィンドウの「出力ディレクトリにコピー」の値を「常にコピーする」にすれば
ビルトすると自動的に実行ファイルと同じディレクトリにコピーされるようになる。

ディレクトリの階層を作りたいならソリューションエクスプローラ上で階層を作れば
それがそのまま反映されてコピーされる。

実行ファイルのディレクトリはこれで
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.application.startuppath

831 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 16:00:55.91 ID:xH15WcK+a.net]
OpenFileDialogなどを使うだけでカレントディレクトリは変わるし
EXEのショートカット経由で起動する場合は任意のカレントディレクトリ位置に出来るし
他プロセスからWorkingDirectory設定無しで起動される場合も考えたりすると
プログラム中で内部的に相対パスを保持するのは構わないけど
IO系APIを呼び出す時は、AppDomain.BaseDirectoryなどと結合して絶対パスにしてから渡したほうがいい

832 名前:デフォルトの名無しさん [2019/05/12(日) 16:17:07.77 ID:zQc98Y8H0.net]
なるほど
自分で絶対パスを1つ決めて、そこを起点にすると

833 名前:デフォルトの名無しさん [2019/05/12(日) 17:07:03.34 ID:zQc98Y8H0.net]
関係ないんですけど、コードってどこに保存してますか?
普通にテキストエディタに保存してますけど

834 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:15:13.31 ID:Zs5BDDrj0.net]
大事な物は心の中に

835 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 17:22:08.37 ID:O1RPDIWFM.net]
>>820
一般的にはGitを使ってGitHubで管理する
だけど今の君のレベルではそんなのは必要ない
今の君のレベルで書いたコードなんて一ヶ月後にはゴミであり、大切に保存する価値などない
一ヶ月後のレベルの上がった君から見ればゴミだという意味であり、決して悪い意味じゃないから勘違いするなよ

836 名前:デフォルトの名無しさん [2019/05/12(日) 17:25:13.38 ID:zQc98Y8H0.net]
自分の環境の場合、プロジェクトフォルダ\bin\debug\hoge.exe
という場所に実行ファイルが作られるようです
Cフォルダの直下あたりに作られるという説明がされちえますが、何か間違ってますかね
//カレントディレクトリの取得
MessageBox.Show(System.IO.Directory.GetCurrentDirectory());
場所ってのは自動的に決まる感じですか

837 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:06:37.88 ID:hmzYcUWua.net]
>>823
日本語で
何を言ってるのかさっぱり分からんよマジで

838 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:42:19.48 ID:Mxa5Iz6jd.net]
>>822
gitサーバーはいろいろ使われてるのにGitHubが一般的は言いすぎだろw

839 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 18:49:55.29 ID:JwWGS0EoM.net]
この人はソースをテキストエディタに保存していると言ってるから
iOS使いなんだろうなと思う



840 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 19:28:54.08 ID:eC5ErjVyd.net]
壮大な計画立てて時間だけがかかって何も完成させられない典型的な例

841 名前:デフォルトの名無しさん [2019/05/12(日) 19:36:30.99 ID:zQc98Y8H0.net]
すみません
がんばります

842 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:05:40.63 ID:TmkC4DiT0.net]
LINQ勉強しててよくわかんないんですけど範囲変数ってあれ事前に宣言しなくていいんですか?
マイクロソフトのサンプルとか見ても例えばselect score in scoresとか出てきてscoreどこから出てきたってなるんですけど
全体的な印象ですけど、SQLはちょろっとかじったので列名無いのにSQLっぽく書いてるLINQってなんかしっくりこないんですよね……

843 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:31:12.34 ID:RcOwQ/d80.net]
>>829

Linqはクエリ式よりメソッド構文の方がとっつきやすい。
クエリ式はSQLに似てるけど、C#の文法に照らすと異質だしな

scores.Select(score => ・・・);

scoreはどこから出てきたの?ってことならまずはラムダ式からじゃないかな

844 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:31:33.06 ID:5S2KiOuR0.net]
まずLINQとクエリ構文は別物だぞ
> select score in scores
select句はクエリ構文の最後に抽出するものを指定するんだからこんなのはあり得ない
select句じゃなくてfrom句だろう
scoreはそのクエリ構文内で使うローカル変数的なものなんだからクエリ構文内で出てくるのが当たり前

列名が無いってのは単に数値の配列とか相手にしてるからじゃね
SQLは二次元相手にしか使わないがLINQ/クエリ構文は1次元相手にも使えるからな
scoresがclass Score { public string Name; public int Value; }の配列とかなら
from score in scores
select score.Value
みたいに「列名」が出てくる

あと重要なことだが、クエリ構文は使いどころがあんまり無い
基本的にLINQには拡張メソッドを使う

845 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:32:12.36 ID:tDx5/mlf0.net]
>>829
メソッド式使えよ

846 名前:デフォルトの名無しさん mailto:sage [2019/05/12(日) 22:33:30.63 ID:tDx5/mlf0.net]
SQLでもテーブルの別名使ったりするやろ

847 名前:入門者 mailto:sage [2019/05/13(月) 07:59:49.56 ID:W1wujo120.net]
https://ideone.com/mKdtnM
独習C#のコードなんですが170行目のshapes[i].Nameは何故実行出来てるのでしょうか?
Nameプロパティには何も記述がないのですが・・

848 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:25:11.57 ID:mnyzhKg9a.net]
>>834
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties

849 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:29:59.30 ID:V/EVdZRD0.net]
>>834
それを学ぶのがその章の目的じゃないの?

Nameプロパティの定義は71行目

163行目のshapes[0].Nameは引数で指定された"right"がセットされる。
164行目のshapes[1].Nameは省略時引数により139行目のコンストラクタを経由して"rectangle"がセットされる。
165行目のshapes[2].Nameは省略時引数により134行目のコンストラクタを経由して"rectangle"がセットされる。
166行目のshapes[3].Nameは省略時引数により106行目のコンストラクタを経由して"trizngle"がセットされる。



850 名前:入門者 mailto:sage [2019/05/13(月) 08:34:33.58 ID:W1wujo120.net]
>>836
そうなのですが
でもvalueで代入してないのに何故Nameプロパティが機能してるのか分からなくて…
setとgetの中身を記述しなくてもプロパティは機能するのですか?

851 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:52:41.32 ID:VAfV6Qs50.net]
public string Hoge { get; set; }

private string _Hoge;
public string Hoge { get { return this._Hoge; } set { this._Hoge = value; } }
の省略構文みたいな感じになる
(実際にはこの_HogeはC#からアクセスできない名前にコンパイルされる)

852 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 08:57:28.04 ID:WhpQbL/L0.net]
>>837
string Hoge { get; set; } は自動実装プロパティと呼ばれるもので、
内容は>>838の通り。

853 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 10:05:53.21 ID:yzhNtOt8H.net]
ありがとうございました

>>831
https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/query-expression-basics
そうですねfromの間違いでした失礼しました
「scoreはそのクエリ構文内で使うローカル変数的なもの」ってのは割としっくり来ました
「LINQ/クエリ構文は1次元相手にも使える」SQLとは全くの別物と考えて頭からっぽにして勉強しなおしたほうがよさそうですね

854 名前:デフォルトの名無しさん [2019/05/13(月) 15:49:43.81 ID:d2gOVbtC0.net]
vsを軽くするセッティングはないでしょうか?
重くなる原因はhddへのアクセスが100になってしまうからです
SSDはないです

855 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:02:30.23 ID:UKQBojaO0.net]
object 型の変数 x に int 型にキャストできる型(short 型や byte 型など)の値が代入されているときに
その値を int 型にキャストしたいのですが、(int)x とすると InvalidCastException が投げられてしまいます。
x に代入されている値が例えば short 型だと分かっているなら (int)(short)x でうまくいくのですが、
この方法だといちいち値の型を調べる必要があるのでもっとスマートな方法があれば教えていただきたいです。
一応自分でも考えてみたところ int.Parse(x.ToString()) なら x の型によらずうまくいったのですが、
値の変換をするだけなのに文字列を経由するのはすごく無駄なことをしているような気がします。
よろしくお願いいたします。

856 名前:デフォルトの名無しさん [2019/05/13(月) 16:05:08.31 ID:d2gOVbtC0.net]
private void Form1_Load(object sender, EventArgs e)
{
var but = new System.Windows.Forms.Button();
but.Name = "button1";
but.Text = "押せ";
but.Location = new Point(0, 0);
but.Size = new System.Drawing.Size(80, 20);
Controls.Add(but);
}
コードでコントロールを追加したいのですが、ボタンは追加されませんでした
エラーでも出てくれればいいんですが、エラーは出ません
エラーは出ないけど、思い通りに動かない場合、何をヒントにしたらいいでしょうか

857 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:07:12.88 ID:XGLfyuuud.net]
ググりゃいくらでも記事出てくるやんけ
そいつらは試したの?
自身の環境も書かない、何を試したかも書かない、知識不足なのに勝手に要因を決めつける
初めて質問するならまだしも散々してきといてそれ?

858 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:08:41.09 ID:XGLfyuuud.net]
>>844
841に対して

859 名前:デフォルトの名無しさん [2019/05/13(月) 16:14:20.97 ID:d2gOVbtC0.net]
出てきました
場所が悪かったようです
ごめんなさい



860 名前:デフォルトの名無しさん mailto:sage [2019/05/13(月) 16:14:45.92 ID:UKQBojaO0.net]
>>843
そのコードをコピペして試してみたら私の方では問題なく表示されました。
そちらでうまくいかない原因は
・Form1_Load が呼び出されていない
・追加したボタンの上に別のコントロールが重なってしまっている
あたりではないでしょうか。

とりあえず Form1_Load が呼び出されているかどうかを確認するために
Form1_Load の最後に
MessageBox.Show("呼び出されてるよ"); を追加してみて、
メッセージボックスが表示されるかどうかを確認されてみてはいかがでしょうか。

861 名前:デフォルトの名無しさん [2019/05/13(月) 16:15:55.94 ID:d2gOVbtC0.net]
>>844
問題はhddへのアクセスです
これは公式のサイトでは、SSDへの交換を推奨しています
それ以外の手段はないかなと思って質問しました






[ 続きを読む ] / [ 携帯版 ]

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

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