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


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

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



1 名前:デフォルトの名無しさん (ワッチョイ f201-IwB9) mailto:sage [2022/11/25(金) 13:16:08.91 ID:HZEumDr50.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part156
https://mevius.5ch.net/test/read.cgi/tech/1663479569/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://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/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

175 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 05:36:35.63 ID:6MPz74YQ0.net]
専ブラ作ってるのってマウイ君?

176 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 07:55:08.78 ID:WKAtXrzF0.net]
言うほどWeb化してるか?
スマホ時代からはむしろWebアプリで良くね?ってレベルのものまで何でもかんでもネイティブアプリ化してるのがめちゃくちゃうざく感じるが

177 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 09:54:09.47 ID:DiXPGtkDd.net]
Webアプリで良くね?ってレベルのものは実際開発者もそう考えていてWebブラウザを全面に貼り付けてあるだけのものが多く、技術的には完全にWebの一種
MAUI Blazorもまさにそうだね

178 名前:デフォルトの名無しさん [2023/01/03(火) 13:48:08.97 ID:KGK7R/p50.net]
>>172
がんばってる
WinUI3って<ContentPage.BindingContext>ってないんだな
どうやってMVVMすればいいんだ?

179 名前:.NET MAUI HighSchool [2023/01/03(火) 13:49:50.55 ID:KGK7R/p50.net]
>>173
スマホはそうかもだけどFigmaのようなそこそこスペックがいりそうなものまでWeb化してる気が、、、

180 名前:.NET MAUI HighSchool [2023/01/03(火) 13:51:48.97 ID:KGK7R/p50.net]
>>174
MAUI BlazorはただのWebとはちょっと違うかな
Blazorを介して直接スマホのネイティブAPI呼び出せるっていうスゲー利点がある
ただこの機能を使わないなら別に普通のWebViewでも良いかなってのは思う。

181 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 14:07:52.60 ID:6MPz74YQ0.net]
>>175
WinUI3はコンパイル時バインディングっていうのだけ用意されてるらしいよ

182 名前:デフォルトの名無しさん [2023/01/03(火) 18:41:34.03 ID:yYGSV1g60.net]
ニュースアプリとかウェブで良いよな。

183 名前:.NET MAUI HighSchool [2023/01/03(火) 20:49:00.39 ID:KGK7R/p50.net]
>>178
よくわからんけどWindowの中にPageを追加したらPage.DataContextでVVMのBindingできました



184 名前:.NET MAUI HighSchool [2023/01/03(火) 20:54:25.22 ID:KGK7R/p50.net]
とりあえずスマホ用の5ch.netからスクレイピングした板一覧をツリー表示させることに成功した
https://github.com/VipperNanashi/5chBrowser
ただ板取得はJsonのほうがいいみたいだからJsonから板を取得する方法を模索中

185 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 21:11:49.20 ID:WKAtXrzF0.net]
板一覧ってjsonで取れんの?
datのみだった記憶あるが

186 名前:デフォルトの名無しさん mailto:sage [2023/01/03(火) 21:15:53.36 ID:WKAtXrzF0.net]
ぱっと見たけどHttpClientはstatic readonlyで一本永続化したほうが良いよ
稀にしか使わないならまだしも5chブラウザってことならむしろメインオブジェクトだし

187 名前:.NET MAUI HighSchool [2023/01/03(火) 22:12:10.39 ID:KGK7R/p50.net]
>>183
クラスってどう分ければいいんだろうか?
板一覧取得サービス、スレッド一覧取得サービス、スレッド取得サービスで分けようとしてたけど
どうがいいんだろ?

188 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 00:43:08.29 ID:r5YTutFsa.net]
Ruby on Rails では、データベースの各表の設計・関連ばかりやる

1対1、1対多、多対多など

189 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 02:21:56.42 ID:+C+yH2XZ0.net]
HttpClientを含むネットワーク接続用のクラスを作成してマウイ君の言うところの各サービスクラスのコンストラクタに渡しておくとか?

190 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 11:27:50.76 ID:Ry3dqHi90.net]
>>173
各社脱獄を目論んでいる
なんでかっていうとgoogleやAppleの気分次第でアプリを修正しなくちゃいけなくて凄く面倒くさいから
amazonはアプリ作るのやめたっぽい
amazonでこうだから他はもっと面倒くさいと思われ

うちも中小だけどあるとき
ふっと動かなくなってるなんてことあって非常に面倒くさい
もう現状でWEBコントロールにWEBページ貼り付けて強引にアプリっぽい挙動してるけど
なんかもうWEBアプリにしちゃおうか?
って話出てる

191 名前:デフォルトの名無しさん [2023/01/04(水) 15:19:20.75 ID:4AqXXBLo0.net]
>>187
MAUI Blazorでいいんじゃね?それ?

192 名前:デフォルトの名無しさん mailto:sage [2023/01/04(水) 23:29:03.48 ID:7N9i2DDEM.net]
専ブラか…
15年ぐらい前にWPFで作ってたな
そのせいでWPFにいい思いを持てない

MS死ねって思えた

193 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 00:08:37.28 ID:vn9u9eY2a.net]
機能をてんこ盛りにしてもガワがダサいと台無しになるんだよな
優秀なデザイナーおらんかね



194 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 02:16:02.09 ID:/ldjRQly0.net]
>>190
フラットデザインならツッコまれない上に最古のieでも動くはず

195 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 17:24:19.12 ID:p6lP0uhc0.net]
short i;

i = 0; // ok
i = true ? 1 : 0; // コンパイルエラー(キャストが必要)

三項演算子で数値を返す場合って、int固定になってしまうのは言語仕様ということでしょうか?

196 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 17:32:00.71 ID:p6lP0uhc0.net]
ぁぁ
上記の場合はコンパイルエラーにならないですね。

以下のようにするとエラーになります
short i;
bool hoge = true;

i = 0; // ok
i = true ? 1 : 0; // ok
i = hoge ? 1 : 0; // コンパイルエラー(キャストが必要)

197 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 17:35:27.31 ID:/ldjRQly0.net]
演算子の評価順番が違うだけとかそんなことない?

198 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 17:47:32.82 ID:Eo475Zw70.net]
特に明示しない場合、整数リテラルはintになるからってだけなのでは?

199 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 18:35:00.85 ID:KPj6QU/BM.net]
まず右辺の数字は整数リテラルと言うもの

変数に代入時は整数リテラルは型より大きすぎるなどしてない限り変数と同じ型とみなされる
そうしないと不便だから

次に i = hoge ? 1 : 0;
の右辺は式である
整数リテラルは代入じゃないときは暗黙的にint扱いになるので右辺の式の値の型はintになる
これでキャストが必要

i = true ? 1 : 0;
この右辺はコンパイル時に決定されてるので代入可能

short s = 7000000-6999999;
これも代入可能なのと同じ感覚

200 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 19:27:18.86 ID:p6lP0uhc0.net]
>>196
ありがとうございました。理解しました

確かに
const bool hoge = true;
i = hoge ? 1 : 0;
とやってコンパイル時に決定されるようにするとエラーが無くなりました。

けど簡潔に書くための三項演算子なのに
(short)(hoge ? 1 : 0);
とかやると台無しですねぇ

201 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 19:54:52.08 ID:ZKzvhdM60.net]
むしろ、あえてshortを使う理由の方が気になるな

202 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:18:41.14 ID:QBL7vIUt0.net]
shortを表すリテラルのサフィックスがないのか

203 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:26:14.03 ID:O+NRT3S+0.net]
>>196
> 整数リテラルは代入じゃないときは暗黙的にint扱いになるので右辺の式の値の型はintになる
> これでキャストが必要
ほんとか?
short s = b switch { true => 1, false => 2 };
はエラーにならんのだが...



204 名前:デフォルトの名無しさん mailto:sage [2023/01/05(木) 23:27:37.63 ID:O+NRT3S+0.net]
>>199
ない、あってもいいのにと思ったけどそもそもshortなんて滅多に使わんことに気づいたわw

205 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 01:05:36.20 ID:7HwChuQ+0.net]
>>200
それ、varで定義したらintになってるし、右辺がintになるのは本当だな
で、c#のコンパイラ、縮小変換で切り捨てがないことが確認ができたら、暗黙の縮小変換を許可するっぽいな。

ちゃんとした言語仕様確認しないと何とも言えんが
おそらくコンパイル時に解決可能なことが前提条件じゃないかと推察するが

206 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 10:21:27.99 ID:xMgEyxw8r.net]
>>198
組み込み機器相手にしているとよく使う

207 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 10:54:04.53 ID:Zk03eeCzM.net]
文字列の中の何文字目に日付があるかを調べたいのですが、
日付の書式としては「2023/01/05(木)」といった感じで固定なものの、
日付の数字は当然日によって違ってくるわけなのでContainsだとちょっとうまくいかないです

いい方法はないでしょうか

208 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 11:05:52.93 ID:J1J3+QokM.net]
正規表現でググれ

209 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 12:19:31.93 ID:buYHqiH80.net]
>>204
static int IndexOfDateString(string str)
{
const string kDateFormat = "yyyy/MM/dd(ddd)";
int dateLength = kDateFormat.Length - 2;
int index = 0;
while ((index = str.IndexOf(')', index) + 1) >= dateLength)
{
int iStart = index - dateLength;
Console.Out.WriteLine(str.AsSpan(iStart, dateLength));
if (DateTime.TryParseExact(str.AsSpan(iStart, dateLength), kDateFormat, null, default, out var date)) return iStart;
}
return -1;
}

210 名前:204 mailto:sage [2023/01/06(金) 16:14:10.99 ID:Zk03eeCzM.net]
ありがとうございます
参考に(と言うかそのままなのかな?)させてもらいます

211 名前:デフォルトの名無しさん [2023/01/06(金) 16:14:19.23 ID:RU2dEBn00.net]
WinフォームアプリでgroupBoxをタブみたいに切り替えて使おうと、
コントローラを切り替えるコードを書いたのですが、groupBoxを重ねて実行したら
全てのgroupBoxが一番下のgroupBoxの子になってるようで、思うように表示されませんでした。
groupBoxを、一番下のgroupBoxの子にしない方法はありますでしょうか?

212 名前:デフォルトの名無しさん (ワッチョイ bb5f-TwI4) mailto:sage [2023/01/06(金) 20:43:15.02 ID:LvtbIuXd0.net]
>>208
・・・.Designer.cs を開くと、自動生成したコードが
一番下のgroupBox.Controls.Add(子のgroupBox)
になってないかな?
だとしたら、デザインモードから子のgroupBoxをフォームに貼り付けるとき、
フォーム直下じゃなく、一番下のgroupBoxに貼り付けてると思う

自分なら、Load のタイミングで、任意のgroupBox.Controls.Add(任意の孫コントロール)
を明示的にコーディングする

213 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 21:39:44.23 ID:buYHqiH80.net]
>>207
Console.Out.WriteLine(str.AsSpan(iStart, dateLength));
確認用のコード消し忘れたからこれは消しといてOK



214 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 22:12:46.01 ID:0EW5INsGM.net]
専ブラでも作るのか?

215 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 22:16:48.35 ID:0EW5INsGM.net]
>>200
switch式は左辺参照して型を決める特殊な仕様らしい
int→shortに変えられる詳しい仕様は書かれていないので実装依存になるかも

216 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 22:48:27.26 ID:Zd/Zujyt0.net]
>>212
Target typed conditional expression とか言うらしく C# 9.0 で仕様が変わったみたい
ざっくり読んだけどいまいちよくわからん
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/target-typed-conditional-expression

217 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 23:11:40.08 ID:i+WCiV6p0.net]
もう誰もついて行けないほどキモい言語になったな

218 名前:デフォルトの名無しさん mailto:sage [2023/01/06(金) 23:46:18.49 ID:lAfbhCFR0.net]
20年間建て増し増改築をくり返してるから。。。

219 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 00:03:23.95 ID:14znWkOG0.net]
まぁ、あっても使わなきゃいいだけなんじゃね
C++のような機能性とJavaのような読みやすさを両立してるってことで

220 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 01:49:54.46 ID:YilgzCe20.net]
C#ってUnityのせい(おかげ?)で簡単みたいに言われている気がしなくもないけど
まともに使える人は案外少ない印象

そりゃC++とかよりは簡単だろうけど
いきなりスラスラ組めるようになった奴はセンスあると思う

221 名前:デフォルトの名無しさん (ワッチョイ 99a7-DWwd) mailto:sage [2023/01/07(土) 10:59:31.87 ID:r7mle/Qh0.net]
それはC#に限らずオブジェクト指向全般に言える話
最初は誰でも手続きぐちゃぐちゃプログラミングになるからな

222 名前:デフォルトの名無しさん mailto:sage [2023/01/07(土) 22:36:09.82 ID:pHfLuIJC0.net]
C#の言語仕様を拡張してどんどん便利にしても.NETが旧態依然のままでぜんぜん便利にならないから誰も.NETで開発しようなんて思わないんだよな
MSはいい加減.NETそのものやライブラリにお金をかけるべきだわ不便だから誰も使わなくてハウツーやナレッジも少ないからエコシステムが構築されずどんどんC#の人気が落ちてる
JS(TS)やPythonが人気なのはスクリプトだからとか簡単だからとかじゃなくて便利で高機能なパッケージ(ライブラリ)が無料で腐るほどあって人気があるからハウツーやナレッジも豊富でエコシステムが構築されてものすごく良い循環してるからなわけよ
とりあえずいい加減P/Invokeは廃止してMS自らがラッパー提供しろって話なんよなぜ未だにC#でGlobal HookなんかのOSのAPIにアクセスするのにP/Invokeが必要なのかそもそもこれがおかしいと思わんのかな
P/InvokeなんてC/C++理解できんやつには使えるわけがないんだがMAUIとかBlazorとかフロントエンドばかり小手先の改良加えるだけでぜんぜんやる気ないだろそりゃAndroidアプリに頼るしかなくなるわな

223 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 01:34:28.04 ID:TcqU+QzpM.net]
その認識は間違ってると思うが…



224 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 02:43:36.44 ID:FOdy7Dic0.net]
またランタイムに相当するやつを別にインストールする必要があるのかってところが猛烈にダサいよね
巨大exeの配布とどっちが良いかみたいな時代と逆行した昔話を思い出すよ
結局昔のようにMS主導で強制されるまでは誰も積極的に使わないだろう

225 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 09:40:34.44 ID:TcqU+QzpM.net]
C#は実際のアクティブユーザー数は少ない
プログラムが趣味ですと言ってる人の中でC#使ってる人の割合が少ないと言う感覚
更にガチ勢の割合が少ない

当初.netのライブラリが充実していた(GUI除く)ので一般人はOSSやサードパーティー製をなかなか使わない風土になってる
それで開発が少ないしされてもすぐ放置される
jsonライブラリも標準が出てしまった
ユーザーはライブラリ開発しないで提供されるのを待つだけ
ガチ勢が育たない

jsは唯一のwebブラウザ向け言語なのに素では開発しづらいから便利なライブラリが開発され続けてる
ライブラリのみでなくjs自体にトランスパイルされる言語が複数開発されてる

一方C#じゃなければ実現できないことはないから積極的に開発されない

C#の人気が落ちてると感じるのは相対的に他の言語の魅力が上がってるから
と言うより20年使ってたけどC#はホビーユースが中心にもかかわらずMS以外でそんなにC#は重要視されてた時代はない

C#は基本的に想定した以外のAPIは放置されてる
GlobalHookなどは馬鹿避けで馬鹿に触らせると問題が起こるので機能を提供してないものと思われる

226 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 09:47:03.48 ID:RamX2q3K0.net]
ほらMAUI君のキチガイムーブのせいでこんなことになってる

227 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 09:48:03.50 ID:TcqU+QzpM.net]
>>219
こいつがMAUI君なのか?

228 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 09:56:44.66 ID:QVI3ZNoXM.net]
騒ぎに便乗している愉快犯だろうが主張が滅茶苦茶

229 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 10:06:02.24 ID:T7l3+Pw00.net]
ヤベぇ奴が2連発

230 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 10:09:17.22 ID:TcqU+QzpM.net]
C#は外部ライブラリがあまり開発されてない
純正志向が強い

js,Pythonなどは区別なく使われてる
Rustは標準ライブラリも外部ライブラリ向けに実装部分を差し替えられるように提供されてたりする
コミュニティ提供のrust入門書でも外部の乱数ライブラリを使ってる

.netは純正主義

231 名前:デフォルトの名無しさん [2023/01/08(日) 10:32:30.16 ID:+xzWagUM0.net]
>>227
たしかに.NETの標準ライブラリで何でも出来すぎてOSSが盛んにならないってのはあると思う
ただサイシャープの河合社長だったり有用なOSSライブラリを作ってる人はかなりいる
みんな知らないだけ

232 名前:デフォルトの名無しさん [2023/01/08(日) 10:34:46.44 ID:+xzWagUM0.net]
まさか標準ライブラリの充実がOSSの足枷になってるとはね
たしかに言語仕様的にゴミカスなJSやPythonがこんだけOSSで流行ってるって言うのは割と関係あるな

233 名前:デフォルトの名無しさん [2023/01/08(日) 10:56:45.19 ID:cWCXtcgI0.net]
仕事で使うなら標準が充実してる環境の方がいい



234 名前:デフォルトの名無しさん [2023/01/08(日) 11:11:28.09 ID:+xzWagUM0.net]
>>230
まぁバージョンが新しい古いとかで動かないとかかなりあるしね
Node.jsなんてそんな感じのグチかなり聞くわ
Sysmem.Text.JsonもNewtonsoft.Jsonのアプデ頻度が高いからしゃーなしに開発されたものらしい

235 名前:デフォルトの名無しさん (オイコラミネオ MM5d-DSRP) mailto:sage [2023/01/08(日) 14:49:48.54 ID:TcqU+QzpM.net]
それに .net standardとかPLCとかの問題で非常にライブラリ開発がつらい時期があった
ふざけるなと思ってる人も多かったはず

236 名前:デフォルトの名無しさん [2023/01/08(日) 21:24:57.31 ID:vR0OTCC7d.net]
Pythonなんてライブラリのバージョンや本体のバージョンで動かなくなるのでうんざりする

237 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 21:52:10.63 ID:PmW37SD40.net]
それはPythonに限らんよReactもFlutterもViteもなんでもそうだ
ちゃんとパッケージを管理できてないお前のスキルが低いだけ

238 名前:デフォルトの名無しさん [2023/01/08(日) 22:19:24.54 ID:vR0OTCC7d.net]
>>234
そういうレベルじゃない
ライブラリ同士の整合性問題がC#の比較じゃない
そもそも比較がC#なのに何で他のを持ち出すんだ?
頭悪そう

239 名前:デフォルトの名無しさん mailto:sage [2023/01/08(日) 22:37:24.96 ID:fqXaATjG0.net]
>>235
ここのスレタイ確認しろよ
Pythonを例に挙げている時点でお前も頭悪いよ

240 名前:デフォルトの名無しさん [2023/01/08(日) 22:51:16.76 ID:Qur7Wt30M.net]
>>235
わかる
あれひどいよな
ものすごくメジャーライブラリでもPythonのバージョン上がると動かなくなって修正に半年とか普通にかかる
リリースされて半年~1年は実質ベータ期間

241 名前:デフォルトの名無しさん mailto:sage [2023/01/09(月) 00:01:38.16 ID:2yNmR2Eh0.net]
他人に期待しても無駄だから安定してるの使えばいいのよ
俺もC#はpowershellとも連携させるから基本OS標準に入ってるバージョンの機能しか使わないし

242 名前:デフォルトの名無しさん mailto:sage [2023/01/09(月) 16:28:59.82 ID:CwlhWpkE0.net]
ライセンス気にせずにExcel操作ライブラリ使うなら、読み取りはExcelDataReader、書き込みはClosedXMLがいいのかね?
EPPlusは商用ライセンス高すぎて使えないわ

243 名前:デフォルトの名無しさん [2023/01/09(月) 17:37:32.83 ID:vMc2E6cN0.net]
SpreadsheetLightってのもある
あと知ってるかもしれんがEPPlusはv4系までは商用でもフリーだぞ
net standard2.0だから今後しばらくは問題ないと思う



244 名前:デフォルトの名無しさん [2023/01/11(水) 11:19:45.11 ID:6xJiw1N1a.net]
単純な真理
馬鹿でも使えるようにすると馬鹿しか使わなくなる

245 名前:デフォルトの名無しさん (ワッチョイ 99a7-DWwd) mailto:sage [2023/01/11(水) 12:26:53.93 ID:mTSuB4YT0.net]
>>241
HTML
はい論破

246 名前:デフォルトの名無しさん (ササクッテロリ Sp4d-1ccR) mailto:sage [2023/01/11(水) 12:30:24.34 ID:9UsnsdsEp.net]
あれ言語?
レイアウト用のスクリプトじゃね?

247 名前:デフォルトの名無しさん (ワッチョイ 2bbb-Jp3v) mailto:sage [2023/01/11(水) 12:31:26.63 ID:xxqhJq0+0.net]
>>241
5chのことかぁぁぁ!

248 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 00:35:27.24 ID:1+V28XvP0.net]
winformsってみんな普通に使ってるし自分も時々使ってるけどこれといったテキスト売ってないよね
みんななんとなくで習得してる
それでもなんとかなるほど学習コストが低いってことなのかな

249 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 00:39:53.96 ID:Ae6OSc1r0.net]
visualstudio使えば、割と簡単とは思うけど
GUI的な考えが分からない奴は結局ちょっと複雑になると作れないんだよなぁ
UI thread的な考えが理解出来ないとUI thread以外でUI操作しようとしたりするしw

250 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 01:42:03.27 ID:9BD/EtRG0.net]
>>245
比較対象がWPFなら簡単過ぎるぐらいだな

251 名前:デフォルトの名無しさん [2023/01/13(金) 04:09:28.41 ID:i9/MSi6dM.net]
まあアレは直感的にわかりますし……
WPFの方が調べても全然出てこなくて困る、書籍も少ないし

252 名前:デフォルトの名無しさん [2023/01/13(金) 06:37:45.03 ID:CqT5d+dn0.net]
@ if ((choice == 2 && player == 2) || (choice == 3 && player == 1))
A if (0 <= xpos && xpos < XMAX && num[xpos] < YMAX)
B board[xpos][num[xpos]++] = player;

C for (x = 0, y = ypos, n = 0; x < XMAX; x++)
D for (x = xpos, y = 0, n = 0; y <= ypos; y++)
E for (x = 0, y = ypos - xpos, n = 0; y < YMAX; x++, y++)
F for (x = xpos - ypos, y = 0, n = 0; x < XMAX; x++, y++)
G for (x = 0, y = xpos + ypos, n = 0; y >= 0; x++, y--)
H for (x = xpos + ypos - YMAX + 1, y = YMAX - 1, n = 0; x < XMAX; x++, y--)
の各条件文内でどーゆー計算、アルゴリズムがされてるか教えてくださる人いますか??

253 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 06:54:01.37 ID:QZjdOIAl0.net]
何がわからんのかわからん
課題なら先生に聞け

あーChatGPTなら教えてくれるかもな



254 名前:デフォルトの名無しさん [2023/01/13(金) 09:13:03.94 ID:CqT5d+dn0.net]
例えば@だと、&&が論理積、||が論理和ということだと思うんですけど、演算子が分かってもその条件文内で何が行われているかとかが分からないので知りたい状態なんです。。

255 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 09:19:57.40 ID:ohfi5XtE0.net]
ベン図でも描けば?

256 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 09:21:26.34 ID:r1OLO4Qgp.net]
マジックナンバーイクナイ

257 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 09:25:11.90 ID:QZjdOIAl0.net]
>>251
それなら俺らもそれ以上はわからんぞ
変数名をちゃんと意味あるものにしてやって >>253 が言うようにマジックナンバーをなくすと読めるようになる

258 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 10:43:33.37 ID:g8ppNh/ZM.net]
>>249
いますかの答えとしてはいない
書いてるコード断片にはアルゴリズムもなにもない
それにこれ多分Cだろ
ここは C#と言う別言語のスレなのですれ違い

これは多分オセロみたいなゲームのコードだろ
縦ラインループ横ラインループと斜めラインループしてる

player1 と player2が対戦して boardが合ってXMAXとYAMXのボード幅ではみ出し判定してる
計算もアルゴリズムも何も感じられない

その前にさあIDEの使い方覚えて一行ずつ動かして何が起こってるか見てみたらいい
初心者の間は状態などを紙にでも書かないと多分わからないよ

259 名前:デフォルトの名無しさん [2023/01/13(金) 10:54:17.50 ID:+TkXA4uqa.net]
マルチで Google Drive のリンクまで晒してるけど
学校名も個人名もばれるから落第だな
下手したら退学

260 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 11:24:47.04 ID:2CVvZRFNd.net]
ちゃんと対象言語のスレで聞いてりゃまだ可愛げがあるけど
他言語やVSCodeのスレとかにまでマルチポストだからげんなりするわ

261 名前:デフォルトの名無しさん (ブーイモ MM4b-mEot) [2023/01/13(金) 11:42:28.12 ID:Qkt7plGTM.net]
半期やってこれがわからないような学生に今どきCを教える大学って終わってるな

262 名前:デフォルトの名無しさん (ワッチョイ b101-tb1I) [2023/01/13(金) 12:02:36.51 ID:CqT5d+dn0.net]
>>255
ありがとうございます、スレ違いで申し訳ありません。
>>"これは多分オセロみたいなゲームのコードだろ
縦ラインループ横ラインループと斜めラインループしてる"
例えばどの条件文、関数からこれを読み取れたのですか?

263 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 12:09:39.59 ID:g8ppNh/ZM.net]
マルチなのか相手して損した
にしてもやる気がない人にはこのレベルはちょっと難しいんだろうなとも思う

二次元配列とボードがイメージとして直結してなくてx、yで盤面の位置を指してることが理解できれば変わるだろうけど



264 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 12:10:56.40 ID:g8ppNh/ZM.net]
リロードしてなかったから書き込みが見えてなかったけど
スレ違いなのでもうレスしない

265 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 12:11:52.99 ID:w4pCcfcAM.net]
わかんない人をわからせるのは
短文投稿サイトでは難儀なので
元々の問題文を貼ってくれれば
正確な回答をもらえると思いま


266 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 12:13:53.39 ID:g8ppNh/ZM.net]
>>262
こら!

スレ違いなので答えてはいけないしどうも他のスレでは張ってあるらしし

267 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 12:42:09.38 ID:2CVvZRFNd.net]
5スレマルチポスト
他所でも警告してやって
hissi.org/read.php/tech/20230113/Q3FUNWQrZG4w.html
hissi.org/read.php/tech/20230113/Q3FUNWQrZG4.html

268 名前:デフォルトの名無しさん (ブーイモ MM4b-IdlF) [2023/01/13(金) 22:44:16.91 ID:UM8Nby1DM.net]
データテーブルの列名が日本語になってるデータベースと、C#コードを連携します。

データテーブルのデータを保持するクラスを定義する際、同じようにして日本語を使ってフィールドを定義すれば対応関係がよくわかるのですが、英語やローマ字で定義したほうが良いでしょうか。

269 名前:デフォルトの名無しさん (ワッチョイ b101-fx7m) mailto:sage [2023/01/13(金) 22:59:24.65 ID:QrXHZOLk0.net]
今開発してるのがまさ

270 名前:に日本語カラムばかりなんだけどめっちゃ楽だぞ
ソースコード内でもカラムを示す箇所が視覚的にわかりやすいしインテリセンスでも埋もれない

カルチャー的に受け付けない人はいるだろうけど使ってみると考えも変わる
[]
[ここ壊れてます]

271 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 23:52:57.11 ID:N2c+mgjH0.net]
過去に行政の税システムのソースを見たら変数名が日本語だった。メーカーのPMに「日本語なんすね」と言ったら「間違いを無くすにはもうこれしかないんです」と言っていた。
税の用語は難しく数が多くて計算は複雑で、もし間違えたら記者会見して新聞記事になる。こういう対象にはそれに適した手段を用いるのが肝要だと思った。

272 名前:デフォルトの名無しさん mailto:sage [2023/01/14(土) 00:37:39.38 ID:ISrlGbh20.net]
nameof使えるし日本語フィールド名で良いんじゃない

273 名前:デフォルトの名無しさん [2023/01/14(土) 03:37:58.98 ID:xHYJkNGt0.net]
>>266
レスありがとうございます。

>インテリセンスでも埋もれない
インスタンス名に続けて、ドットを打ったらインテリセンスで日本語名フィールドが表示されるのですね。

row_日本語の列名 みたいにしてなにか最初にアルファベットで列名に関与していることを示してみようかと思っています。
フィールドでは無意味かな。
でも、クラス名が日本語の場合は、model_日本語名 みたいな感じで最初にアルファベットをつけておくと、
インスタンス化のときにnewによるコンストラクタの呼び出しが便利かもと思っています。

>>267
たしかに。間違いはなくなりそう。日本語から英語に訳すのに時間がとられるし、それで対応関係がわからなくなってしまったら、
まったく無意味ですよね。
私も、日本語でやってみたいと思います。

>>268
https://atmarkit.itmedia.co.jp/ait/articles/1607/20/news026.html によると、
>nameof演算子を使うと、名前空間/型/メソッド/プロパティ/変数などの単純な名前(=名前空間やクラス名などで修飾されていない名前)の文字列が取得できる。

でも、何の役に立つのかピンとこない。
日本語フィールドとどう関係があるの?



274 名前:デフォルトの名無しさん mailto:sage [2023/01/14(土) 05:06:37.76 ID:XX64qgVXH.net]
ひょっとしていまだにDataTable/DataSetを使ってるとか、生のDataReaderでレコードを取り出して1項目ずつフィールドに転記するつもりなんだろうか
EntityFrameworkなりDapperなり使わなきゃだめだよ
DapperでSQLを手書きする前提なら、nameofを使ってこんな感じ

public class T_テーブル1 {
 public string カラム1 { get; set; }
 public string カラム2 { get; set; }
 public string カラム3 { get; set; }
}

var sql1 = $"SELECT * FROM {nameof(T_テーブル1)} WHERE {nameof(T_テーブル1.カラム1)}=@val";
T_テーブル1? rec = connection.QueryFirstOrDefault<T_テーブル1>(sql, new { val = "aaa" });

string sql2 = $"INSERT INTO {nameof(T_テーブル1)}"
+ $"({nameof(T_テーブル1.カラム1)}, {nameof(T_テーブル1.カラム2)},{nameof(T_テーブル1.カラム3)})"
+ $"VALUES(@{nameof(T_テーブル1.カラム1)}, @{nameof(T_テーブル1.カラム2)}, @{nameof(T_テーブル1.カラム3)})"
connection.Execute(sql2, rec);

個人的にはクラス名(テーブル名)・プロパティ名(カラム名)については
たとえC#の命名規約に反しようと全角半角・英大文字小文字含めDB定義通りにして
SQL文組み立てにフル活用できるようにする

275 名前:デフォルトの名無しさん mailto:sage [2023/01/14(土) 08:03:33.86 ID:YVgT972+0.net]
テーブル1とテーブル2で同じカラム名があるとダルそうですね






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

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

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