X



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

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

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

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

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/07/26(木) 19:42:46.48ID:CSIl69XB0
アイドルグループの中身は知りません
852デフォルトの名無しさん (ワッチョイ 16e8-4UL4)
垢版 |
2018/07/26(木) 19:49:11.86ID:jgVPt9Lg0
LinQクラスの各メソッドの中身の味方教えてください
2018/07/26(木) 19:51:33.98ID:XPlHGtVDd
>>852
github
854デフォルトの名無しさん (ワッチョイ d27f-J6FL)
垢版 |
2018/07/26(木) 19:55:09.78ID:gWAgddOO0
>>852
https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs
2018/07/26(木) 20:49:53.68ID:X2GH2dHI0
>>847
NGかどうかはお前の都合だがな
ASP.NETでもWebFormあたりは、サーバ側とクライアント側の統合を目指してたんだよ
クライアントスクリプト一切書かなくてもAJAXできるコントロールとかまであった

だが今の流れはサーバサイドはサーバサイド、クライアントはクライアントな流れ
クライアントはすきなライブラリ使え
>それならまだaspnet coreはapiに徹して
apiに徹するのと、html出力に徹するのとどれほどの違いがあると?
2018/07/26(木) 20:51:44.84ID:aLLF0qhM0
>>848
ASP.NET Coreと相性いいのは無いね
2018/07/26(木) 20:59:07.08ID:0BZQ2aB/M
ASP.NETの問題というよりC#自体がwebのフレームワークと相性が悪いような…
おとなしくtypescript使ったほうが楽かなとは思う
2018/07/26(木) 21:10:20.45ID:aLLF0qhM0
>>855
WebFormsの時からずっとだけど鯖で出力したhtmlやバックエンドの挙動を把握してJS書かないといけないからめんどくせえじゃん
なんのためにナマのhtmlを隠蔽したのかって話になる
htmlを隠蔽すると決めたなら徹底しなきゃならん
apiに徹すればクライアントはクライアントで綺麗に切れるからそんな煩わしさから開放される
2018/07/26(木) 21:25:20.81ID:+zykdZnW0
LinQ は、Rails のQuery object と同じだろ

where 何々
order by 何々

別々に書いた文字列を、1つのSQL 文にまとめて、DB に問い合わせする
2018/07/26(木) 21:32:16.74ID:Q5F+5vhQ0
>>857
ちょっと何言ってるかわからない
2018/07/26(木) 21:43:03.68ID:wePnpHti0
>>849
C#が扱うのはTCPあたりだけじゃないのか
そっから下はOSやら何やらの仕事だし上はCISCOのマニュアルなり読めとしか言えそうにない
862デフォルトの名無しさん (ワッチョイ 16e8-53i4)
垢版 |
2018/07/26(木) 21:45:25.99ID:F57VHmfS0
ソリューションエクスプローラーで.csファイルのなめえ変えてもデバッグできる?データ壊れない?
2018/07/26(木) 21:47:47.65ID:0BZQ2aB/M
>>862
gitというものがある
そいつを使えば自由自在に試し放題だ
864デフォルトの名無しさん (ワッチョイ 16e8-53i4)
垢版 |
2018/07/26(木) 21:50:46.39ID:F57VHmfS0
いやあああああああ
これ理解してないと動かなくなるやつうううう
https://i.imgur.com/3Mz1OsU.png
2018/07/26(木) 21:51:53.07ID:rEhHpU7y0
こういうハッキングの匂いがするやつは回答しないほうがいい
2018/07/26(木) 21:51:55.20ID:gWAgddOO0
>>862
ソリューションエクスプローラー上での名前の変更は問題なく出来る
2018/07/26(木) 21:53:30.55ID:0BZQ2aB/M
git使わなくてもソリューションのフォルダごとコピーかzip圧縮でも十分だけど
868デフォルトの名無しさん (ワッチョイ 16e8-53i4)
垢版 |
2018/07/26(木) 21:55:22.46ID:F57VHmfS0
>>866
>>867
ごめん無事でした
なんかVSがクラス名と一致させようとするからダメかと思いました
ありがとうございます
869デフォルトの名無しさん (ワッチョイ 16e8-53i4)
垢版 |
2018/07/26(木) 21:59:28.86ID:F57VHmfS0
>>854
これ見てみます
ありがとうございます
2018/07/26(木) 22:20:23.27ID:uwMXaYNj0
>>868
javaとは違うんだよ
2018/07/26(木) 22:27:27.51ID:ySl3KkZ10
>>867
gitでもフォルダコピーでも、自由に試し放題なのは同じだが
gitだとフォルダコピーに該当する操作が一瞬なんだよね
フォルダコピーだとある程度大きいプロジェクトになるとプログレスバーを待たなきゃならん
2018/07/28(土) 08:21:01.22ID:IX5bbTr/0
DataAnnotationsの属性の組み合わせを新しい属性として定義することはできますか?

例えばFooIdは20文字以下で"^[A-Z]{5}-\d+$"にマッチしなければなりません
StringLengthAttributeとRegularExpressionAttributeを組み合わせて
FooIdAttribute := StringLengthAttribute(20) and RegularExpressionAttribute(@"^[A-Z]{5}-\d+$")
といったニュアンスでFooIdAttributeを定義したいのですが方法を探してもまったく見つかりません

もちろんValidationAttributeを継承してFooIdAttributeを作るだけなら出来ました
しかしこの方法ではASP.NETのクライアント検証やEFのコードファーストがStringLengthAttributeとRegularExpressionAttributeを認識してくれません

すべてを諦めて
「モデルプロパティとしてFooIdを使う時はstring型でプロパティを定義してStringLength(20)とRegularExpressionAttribute(@"^[A-Z]{5}-\d+$")をコピペすること」
といった実装ルールを定めてDRY違反には目をつぶるしかないのでしょうか
2018/07/28(土) 09:32:16.19ID:rUA3L/4NM
バリデーションに限った話ではなく属性のMixinができないのは言語仕様の欠陥
多重継承が可能なら悩むことなかったんだけど...
まあC# 9ではMixinがサポートされるらしいのでそれ以後は簡単になるだろう
それまでは諦めてコピペする以外ない
2018/07/28(土) 09:50:11.05ID:Z2VlFyTVa
パラメータだけconst stringにしとけ
2018/07/28(土) 16:04:28.18ID:xL2l+Gb50
>>872
CustomValidationでいけそうな要件にみえるんだけど?
質問内容の理解が間違ってたらごめん
2018/07/28(土) 16:54:36.21ID:Ls9tzaL9M
>>875
ValidationAttributeはサーバーサイド検証はできるけどクライアントサイド検証やEFには効果がない(追加コードを書かなければ)
属性Mixin的なことができれば追加コードを何も書かずにそれらの収穫を得ることができたはずなんだ
2018/07/28(土) 17:41:04.66ID:PBzjh5L/d
>>872
\d+にするからなんじゃないの?
\d{14}か、{,14}で解決するのでは?
2018/07/28(土) 19:08:15.95ID:Ls9tzaL9M
>>877
正規表現を変えても同じ
サーバーサイド検証だけが検証属性の役割じゃない
2018/07/28(土) 21:33:59.64ID:ooB9UphUa
例がおかしいせいか正規表現で何とかしろって最初に見たとき思った
2018/07/28(土) 21:46:45.51ID:IX5bbTr/0
TypeDescriptorで動的属性にしたけどダメだった
このFWカスタムしにくい
2018/07/29(日) 17:20:08.97ID:1IN8lfJM0
VB6のプログラムをC♯で書き直しをやってるんですが、複数あるフォームで毎度使うグローバル変数や定数ってどうしたら良いですか?
882デフォルトの名無しさん (ワッチョイ 02eb-x//5)
垢版 |
2018/07/29(日) 17:39:04.96ID:jELBj7vj0
それらを管理する構造体かクラスを作るのが良いでしょう
ただ、作り始める前に現代風のプログラミングの仕組みを勉強したほうが良いんじゃないかな
変数のスコープの問題として解決しようとする時点で基礎が出来ていない気がしてしまう
2018/07/29(日) 17:48:24.83ID:OsBw9Csr0
>>872
属性二つ付けとくのでダメなのか?

>>881.882
ベタに移植するならなるべく同じようにしとくってのも手だぞ
まあベタ移植ならVB.NETでもいいわけだが
2018/07/29(日) 18:02:58.75ID:qyyXPeAu0
>>881
もう親フォームのpublicに置いちゃえば?
2018/07/29(日) 19:28:22.30ID:w8CG8UOca
Appに持たせる
2018/07/29(日) 19:28:43.90ID:1IN8lfJM0
親フォームにpublicに置くのがベターなのかね?楽でいいし。
887デフォルトの名無しさん (ワッチョイ 6fb5-WEB5)
垢版 |
2018/07/29(日) 19:32:07.48ID:0glkw7L10
普通は目的や用途に分けてベースクラスと機能クラスに分けて配置するだろ。
2018/07/29(日) 19:32:52.42ID:w8CG8UOca
定数はクラスに持たせるべき
グローバル変数というものは存在しない
889デフォルトの名無しさん (ワッチョイ b39f-Fk8t)
垢版 |
2018/07/29(日) 19:36:39.97ID:LP0lwlvd0
public static read onlyをまとめたクラス1個作ればよくね?
2018/07/29(日) 19:42:49.43ID:1IN8lfJM0
やっぱクラスか。
2018/07/29(日) 22:10:08.10ID:UEZe9Eeh0
別に構造体でも良いのよ
892デフォルトの名無しさん (ワッチョイ 12d2-gjV1)
垢版 |
2018/07/29(日) 22:38:15.47ID:F0wMdqEY0
標準モジュール→Public Shared Class
2018/07/29(日) 22:43:45.68ID:ELcoO8zwa
>>881
そんなものは無くすように書き直すのがベストでしょう

どうしてもというのならProgramにでも置く。
お勧めはしないけど、using static使えばVB6っぽく書けると思うw
https://ufcpp.net/study/csharp/ap_ver6.html#using-static
2018/07/29(日) 23:31:49.93ID:1IN8lfJM0
例えば何度も登場するファイル名とかパス名とかって使う時はどのようにします?
2018/07/29(日) 23:33:57.49ID:caIFgm3n0
>>894
決まった値ならconst stringにしておけば間違う心配がない
2018/07/30(月) 00:08:07.54ID:VxehPTRB0
>>894
staticのメンバ変数
2018/07/30(月) 00:08:34.88ID:rsToVW4ga
>>894
そもそも何度も登場させない
クラスに集約する
2018/07/30(月) 07:19:52.76ID:+iDwScmiM
>>897
俺は何度も登場させた方がいい派
登場させないってことは定数であるにも関わらず変数に突っ込んで色んなとこ回して最後にそこに行き着く的なソースになんだろ?
定数なら検索したときに使用箇所がひと目でわかったほうがいいよ
2018/07/30(月) 07:36:32.18ID:rsToVW4ga
>>898
そうじゃない
同じファイルをあちこちで突っつき回す設計そのものに再考の余地があるということ
900デフォルトの名無しさん (ワッチョイ 6fb5-WEB5)
垢版 |
2018/07/30(月) 09:05:26.71ID:Jg26N5KJ0
クラス内で何度も参照する事はあるだろうが、複数のクラスに跨って同じ定数を参照するってのは、
それ、たまたま同じなだけだから、まとめるのは誤りだろ?
901デフォルトの名無しさん (ブーイモ MM0e-cnlH)
垢版 |
2018/07/30(月) 09:07:31.01ID:MG3uyJqBM
899に同意だな。おれがレビューしたら書き直させるわ。
2018/07/30(月) 12:08:02.74ID:7haz7YgPd
エクセルをデータベース接続して開いて閉じる。までは出来たのですがそこからシート2を選択して最終行まで読み込むにはどうしたら良いですか?
2018/07/30(月) 12:10:36.96ID:5omRjmvzM
まずVBAで書いて、意図どおりに動いたらそれを同じようにC#で書くだけ
VBAで動かないならスレ違い
2018/07/30(月) 12:14:41.69ID:KgGKmVLt0
>>902
接続したならシート名をテーブル名としてSELECT使えば最終行まで取れるはず
2018/07/30(月) 12:20:48.13ID:7haz7YgPd
セレクトでググってみます!
2018/07/30(月) 14:16:52.66ID:7haz7YgPd
さっぱりわかりません。これをC♯でどうすればいいですか?
https://i.imgur.com/XlcEsOK.jpg
2018/07/30(月) 14:49:47.75ID:yNVCdeG40
窓から投げ捨てろ
908デフォルトの名無しさん (ワッチョイ 16e8-4UL4)
垢版 |
2018/07/30(月) 15:35:38.43ID:5x/p7Cmg0
コンボボックスのitem追加してるだけやん
909デフォルトの名無しさん (ワッチョイ 02eb-2QVD)
垢版 |
2018/07/30(月) 17:13:19.68ID:fEGsPpBX0
これ、出来上がるまでずっと聞きまくるわけかい?
2018/07/30(月) 17:49:14.69ID:7NTlHlZ80
とりあえずガチでまったくわからないなら、Do Until とかIf Thenみたいな処理の流れに関するとこから、C#に翻訳してみれ。
2018/07/30(月) 20:38:04.00ID:jheKbzlL0
>>906
SharpDevelopで変換できたりせんか?
2018/07/30(月) 20:56:43.06ID:VxehPTRB0
>>911
VB.netならやったことある
VB6はできるんかな?
913デフォルトの名無しさん (ワッチョイ d27f-J6FL)
垢版 |
2018/07/30(月) 21:47:46.48ID:wGxxsVxc0
>>908
コメントにも書いてあるなw
2018/07/31(火) 10:42:36.92ID:2Ex+HyWw0
>>912
VB6から直接はだめだろうな。VB.netを経由させて。
2018/07/31(火) 12:16:51.56ID:U+0KE03Yd
無事なんとか出来ました。
お騒がせしてすみません。
2018/08/01(水) 02:45:49.37ID:FqdJoFN10
VBを勉強しようかC#を勉強しようか迷ってるんですがVB(およびVBA)でできることはC#でもできると考えていいのでしょうか?
2018/08/01(水) 06:48:32.72ID:l9oYGZY20
>>916
そんなのお前が出来るか、出来ないかによる
2018/08/01(水) 07:02:36.02ID:rdkY69Yn0
>>916
いやc#やればいいよ
2018/08/01(水) 07:13:07.63ID:qsg6KMIX0
VBAで出来てC#で出来ないことはある
2018/08/01(水) 07:19:08.47ID:rdkY69Yn0
unityでサポートされてるのがc#だった気がする
2018/08/01(水) 07:29:28.41ID:Y/cQkN27M
>>916
VBextensionを取り込む事が出来る
コーディング量が少ない
単価が高い

VBを選ぶ理由はほぼ無しかと
2018/08/01(水) 07:53:12.90ID:FqdJoFN10
ありがとうございます
迷わずC#を勉強しようと思います
2018/08/01(水) 07:58:50.19ID:+mBt06Dyd
RazorもC#
2018/08/01(水) 08:27:33.28ID:jJEMbL0b0
迷わず逝けよ逝けば分かるさ
2018/08/01(水) 10:13:49.72ID:xEVWsek0M
VS2013 で Process で別コンソールアプリを実行するプログラムを作っています。
OutputDataReceivedイベントで随時標準出力を取得したいのですがうまくいきません。
同じくVS2013C#で作ったコンソールアプリでのConsole.WriteLineならうまくいくのですが
VC++6.0 で printf 出力だと、ある程度溜まったタイミングでそれまでの出力が一気に来ます。

printfでもリアルタイムで取得できるようにできないでしょうか。
926デフォルトの名無しさん (ササクッテロ Sp47-WEB5)
垢版 |
2018/08/01(水) 10:16:00.84ID:bFUL3z7Ep
そりゃあ、ある程度溜まってから表示されるからじゃね?
2018/08/01(水) 10:17:43.78ID:7O+dWvwKM
flushしろ
対象に手を入れられないなら無理
2018/08/01(水) 10:41:41.93ID:WxaG7LihM
つ setvbuf
2018/08/01(水) 13:34:26.08ID:xEVWsek0M
>>928
setvbuf でうまくできました!
ありがとうございました。
2018/08/01(水) 21:13:58.64ID:htMziwx30
resharper使ってる人感想教えて
勉強になるって書いてるブログもあったから
半額セール中に試してみようかなと
2018/08/01(水) 21:15:10.33ID:soAz8ZFH0
ブログに書いてるんならそれを参考にすればいいじゃん
2018/08/01(水) 22:14:32.39ID:+VbRL20ga
resharper重いから嫌い
よく他の拡張と干渉して不具合起こすし、機能の頭数だけ多くて結局vsにデフォルトで搭載されてる機能と似たようなもの以外は滅多に使わなかった
vscodeが快適すぎて最近はC#もほとんどvscodeで書いてるわ
2018/08/01(水) 22:38:33.79ID:htMziwx30
使用感産休ー
結局使わなくなっちゃうくらいもっさりは躊躇するな
俺のマシンそんな高性能じゃないし
2018/08/02(木) 12:35:14.33ID:atWDWRRZd
先日のお騒がせものですが、シートの中身入れることはできたんですが、今度はシート名をコンボボックスに入れるのにこれだとシート名が名前順に入るんですがシート順に入れるにはどうしたらできますか?

https://i.imgur.com/LxYIiyg.jpg
2018/08/02(木) 13:28:17.69ID:CFW8XzdE0
>>932
具体的にどこがcodeの方が良いんだ?
軽さ以外にある?
2018/08/02(木) 14:17:24.55ID:B5uzr2w20
>>934
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox.sorted(v=vs.110).aspx
2018/08/02(木) 14:19:27.48ID:5ti5JZJPM
>>935
フォントのレンダリングが美しくて見やすい
プラグインが豊富
一緒に他の言語のソースを編集する必要がある場合に完全にシームレスに行き来できる
プロジェクトファイルを直接テキストとして開ける(.NET Coreなら必須)
2018/08/02(木) 18:24:36.08ID:IKbU8cfg0
細かい話だけど.csprojのテキスト編集は.NET Coreプロジェクトだと
VSでもコンテキストメニューにあるのよね
まあIDEの立場としてはGUIが未実装故の手抜きと見做すべきだろうけどw
2018/08/02(木) 18:59:54.66ID:R3xyuwRy0
30年前のプログラミング環境に逆戻りですなw
2018/08/02(木) 19:09:52.83ID:5ti5JZJPM
>>939
設定を必要最小限にして極力テキストベースで完結させるのが今時の流行り
新形式のプロジェクトファイルは直接手で編集しやすいように構造が全面的に見直されてるんだよ
gitにコミットするときとかgithub上でレビューしたりするときにどうせ中身を一行一行意識しなきゃいけないんだから、
GUIの設定画面なんかはっきり言って邪魔なだけ
2018/08/02(木) 19:27:12.70ID:R3xyuwRy0
30年前と言ってることが同じですな。
2018/08/02(木) 19:28:34.12ID:R3xyuwRy0
一度滅んだOSSの糞文化を取り込んだせいでどんどんMSの品質が腐っていく。
2018/08/02(木) 19:31:53.19ID:vZ9OA8Bgd
おじいちゃんかわいそうに
2018/08/02(木) 19:33:26.86ID:5ti5JZJPM
まあ騙されたと思って新しい形式のプロジェクトファイル使ってみたら?
Coreじゃなくても使えるよ
GUIによる設定は今まで通りにできるし、バージョン管理が楽になって普通に便利
2018/08/02(木) 19:44:44.63ID:R3xyuwRy0
>>943
無職乙。C#の案件は見つかりましたか?
2018/08/02(木) 19:47:31.22ID:R3xyuwRy0
>>944
結局ゲイツとカトラーがこんなもの使いものになるかとブチ切れしたのが最後、MSの凋落が止まりませんな。
マイナー街道まっしぐらだったヘジをスカウトしたのが失敗の始まりだったな。
2018/08/02(木) 19:50:04.61ID:R3xyuwRy0
C#はほぼ壊滅しただがまだVB.netの案件は数多く残っている。

VB >>>> C# これが現実。初心者はVBにしたほうがいい。
948デフォルトの名無しさん (アウアウカー Sa07-kkiZ)
垢版 |
2018/08/02(木) 19:50:50.20ID:3eKb6bola
>>947
いいから早く就職しろ
2018/08/02(木) 19:52:31.24ID:vZ9OA8Bgd
>>945
自己紹介かよw
2018/08/02(木) 19:56:33.48ID:R3xyuwRy0
ID:vZ9OA8Bgd ←こいつC#しかできないみたいw

何を勘違いしてC#を勉強した知らんが10年前から既にC#はオワコンだから諦めろ。今は採用案件は皆無。

馬鹿なおまえになぜか教えてやろう。C#は糞だから。これが世界中のIT業界の総意。ゲイツやカトラーも含めてな。
2018/08/02(木) 19:59:03.89ID:QFtuhP10p
いつものヘジたんラヴおじさんか
ボーランド時代に逆恨みしてメンヘラ化してるというw
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況