ふらっと C#,C♯,C#(初心者用) Part159
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part158
https://mevius.5ch.net/test/read.cgi/tech/1679783460/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.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
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured [i, ]みたいなこともできないから結局ループ回すしかない ありがとうございます
c#だとサクッと出来る関数とかないんですね int[] map1 = {5,6,7,8,9};
void Start()
{
for (int i = map1.Length ; i > 0 ; i--)
{
print(map1[i]);
}
}
初歩的かと思うんですが、配列をリバースしてからプリントした処理をしたいです
テトリミノを回転させるときに必要になると思うので
しかし、このコードだと「Index Out Of Range Exception: Index was outside the bounds of the array.」というエラーになります
これはLengthが0からではなく、1から始まることが原因だと分かりました
なぜ1から始まるんでしょうか? 配列は0から始まるから9を取り出したい場合はmap1[4]にしないといけない
>>104だとmap1[5]になるからエラーになる >>104
>これはLengthが0からではなく、1から始まることが原因だと分かりました
その理解は正しくない
LengthとIndexがごっちゃになってるから区別を付けよう >>104
> Lengthが0からではなく、1から始まる
Lengthは0から始まるぞ
↓みたいなのはLength=0だ
int[] Val = new int[0]; 質問ですが、ファイルを読み書きするときにエラートラップは必要でしょうか
読み書きに失敗するということはHDDかSSDが破損しているということで
そのときにはもうWindows自体が正常に動作していないと思うので、必要ないような気もします なぜそのパターンしかないと決めつけられるんだろう
逆に不思議ではある 自分しか使わなくて、他に実害ないならエラートラップなんて不要
(手抜きで作業手間増えるのは自己責任) .NETつこてるんなら、ちっとはMSのドキュメントでファイルアクセス周りにExceptionの名前でも見てみればいいのに
そしたらどんな理由で起こりえるがもうちょっと解ろうにな >>105
106
107
109
ありがとうございます
インデックスとレングスのズレを修正マス(*´ω`*) ズレを修正っていうか、インデックスとレングスのそれぞれの意味をちゃんと理解しなさい
もう随分古くて、いい加減使うのやめろよっていう言語だけど
インデックスがいくつから始まるか宣言の度にプログラマが決めれるような言語もあるんだよ unityなのでC#使うしかない状態です。
そんな駄目な言語なんですか、、、? なんでこいつあぼーんになってるんだろうと思ったらVSスレにキショいAA書いてたやつと同一人物だったか unityがこのまま終了になるとunreal engineに人が流れる
となるとC#よりはC++を習得したほうがいいよね!って流れになる 欲をかいた結果みんなにそっぽ向かれたらどのみち終了だろ 配列@とAからBを作りたいんだけど、ループさせる以外になにか方法ありますかね?
@ string[] tmp = new string[5] { "A", "", "C", "", "E" };
Astring[] tmp2 = new string[5] { "", "B", "", "D", "" };
B{ "A", "B", "C", "D", "E" }; >>124
tmp.Zip(tmp2, (s, t) => s + t).ToArray() var tmp3 = tmp.Zip(tmp2).Select((a, b) => a == "" ? b : a);
要素数が違うとかの場合は知らんけど 新命令増えてくると、何やってるかはわかるが、新規にその書き方をパッと思いつかない
漢字読めるけど書けない感じ 実務レベルでSQL操作するときってORMは使わないもんなの?
EntityFrameworkはそんなに使われてないってどこかの記事で見たんだけど実務だと生のSQL使ったほうがパフォーマンス的に良いとかあるんだろうか 自分に裁量があるときはEntityFrameworkを避けてDapper+ちょっとマイナーなSQL(CRUD)生成実行ライブラリを使うかなあ
EFのSaveChangesで更新という仕組みがいまだに好きになれない SQL でも HTML でも自分で書かせてくれた方がずっと楽な気がするんだが。
環境に合わせて「ぼくの考えた最強のなんとか」をあれこれお勉強しなくてすむし。 Ruby on Rails では、ORM を使う。
SQL を直接書いたら、SQL injection される!
PHP は、必ずやられる
>>127
Ruby のEnumerable を見れば?
JavaScript のLoDash も、Rubyに合わせている >>125-126
ありがとう!
LINQのZip使ったことなかった >>135
Unityは大盛況だよ
ただしム板のC#はUnity専用じゃないから
C#スレよりUnityスレ逝った方が良いと思う 乞食が騒いでるだけだろ 嫌なら使わなきゃいい
CentOSの騒ぎのときと近いものを感じる いずれにせよマ板の話題
ム板のC#スレにはふさわしくない 下記の_Aからbを取り出すにはどうしたら良いでしょうか。
_A.bのように取り出せないかなと思ったのですがダメでした。
よろしくお願いします。
public class TestEnt
{
public string a { get; set; }
public string b { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
List<TestEnt> _test = new List<TestEnt>();
_test.Add(new TestEnt { a = "A", b = "c" });
_test.Add(new TestEnt { a = "AA", b = "q" });
_test.Add(new TestEnt { a = "AAA", b = "b" });
var _A = _test.Where(x => x.a == "AAA");
string _B = _A.b; //b = "b"を_Bに取り出したいです。
} string _B = _A.First().b; ダメだったらデバッグ中に中身を見ればよいではないか WhereじゃなくてFirstOrDefaultにして_A?.bにしとけ >string _B = _A.First().b;
>WhereじゃなくてFirstOrDefaultにして_A?.bにしとけ
0142ですが、共に期待する動作を確認できました。
ありがとうございます。 LINQの結果をvarで受けるのが慣例になってるけど
初学者には型を明示しない弊害が大きいと思う 今はvarでも型もうっすら表示してくれるじゃん
横に表示が長くなるから良し悪しだけど >>153
マジっすか
後でソース見るとき、型判断するのに右の方見ないといけないのダルいときあるのよ
適宜var書き換えよ 他の環境は知らないけどVisualStudioなら変数名のとこMouseHoverすれば型名出るでしょ >>155
ワイもそれ
逆に使い慣れない開発環境のときは無駄にイライラするw c#でwin/linuxのデスクトップアプリ作れるGUIフレームワーク緩く探してるんだけど今は何がおすすめですかね
1年くらい前に軽く探した感じだとavalonia,mauiあたりは新興すぎて開発途中っぽいしなあとかで
とりあえず他の開発で慣れてたunityでお茶を濁してました
MVC綺麗に分けるのだけじゃなくて、コードだけで画面作って小物サっと組むのもできたらいいなとか思ってます Avaloniaは順調に完成度上がってきてて
OSSあるあるでIME周りが残念だけど10.xの頃よりはマシにはなってきてるし、
個人的にだが小さいツール作る分には致命的なバグや仕様はないかなと思う
ドキュメントは少ないが、WPFの開発経験があればだいたい勘でイケる
逆に言うとWPF分かってないと辛いと思う
MAUIは知らん .NET MAUIはLinuxデスクトップはターゲットでは無かった記憶が LinuxのMAUI待ってたけどもうPythonで作ってるわ linuxのGUIって基礎から終わってて
その糞環境の上でまともなアプリが作られるモチベも湧くはずもなく
それに目を背けながらwebベースのUIばかりが作られていく
要するに関わるだけ時間の無駄 【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】
【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法
ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方
月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です
フリーランスの年収は平均いくら?年収1000万円以上の割合とは
2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い! C#はいろんなOSで動くらしいのですが、それはGUIを含みますか?
自分の環境LinuxMintにMonoDeveloperを入れているのですが
GUIはGtkが使用されています。
Gtkを使ったアプリは・・・WinddowsやMacでは動きませんよね? LinuxのGUIが終わってるかは知らんけど
CUIでしか使ったことないな >>164
WindowsやMacむけに移植されたgtkはあるよ
ただし、それぞれのプラットフォーム用に書いたコードがそのまま別のプラットフォームにもっていけるかどうかは知らんが なんちゃら互換は素のwinformより醜い代物が出てくると思ってる WinUI3で作ったアプリって、.net Frameworkしか入っていないPCでも動きますか?
WPFスレで聞いてみましたがスルーされてしまったので、よろしくお願いします >>167
Winform自体はシンプルだぞ
醜い実装するからそう思うだけ なんちゃらツールキット作ったGUIで表示されるコントロールって
うんこみたいなやつしか見た事ない >>168
WinUI3でストアに公開しなければ、unpaclagedってコンパイルしたバイナリフォルダの内容全てをコピーして実行させることになります
Windows10のアップデート済みのパソコンならそのまんま動くはず WPFスレでそんな質問はないけどなw
普通に.net frameworkだけでは動かない
.Net6以降のみサポートだから
特殊なことをして動かせるかもしれないけどそんな質問してくる人間には無理だろう
C#使ったWinUI3はバイナリコピーして実行させても必要な.net coreのバージョンがインストールされてがないと落ちる
インストーラーを適切に作ると.net coreのバイナリをダウンロードしようとする >>174
https://tera1707.com/entry/2022/07/29/043705
この記事にあるように、csprjにフラグを設定するとバイナリフォルダに必要なランタイム一切合切もコピーされるので
それをそのまま持っていけば動く >>175
フラグ設定しないとうまくいかないのか知らなかった
自分ところではずっと失敗してたんだ
多分この人が上の質問をしてるので何が何でも.NET6を使いたくないのだと思ってる
8 名前:デフォルトの名無しさん[] 投稿日:2023/09/20(水) 17:54:12.88 ID:jVfboGwk
WinUIって.NET6を入れずに使えますか?
VS2022のプロジェクトだと、.NET Frameworkが無くて.NET6になってしまいます >>176
Template studioにランタイム云々ってオプションがいつの間にか追加されていて
それをチェックしたらフラグがセットされてフラグの存在をそこで知った ずっとVS2022のGUI操作してパッケージ作って失敗してを繰り返してた
自分がアホなのか仕組みが出来てないのか判断できないでいた t_k_t_k(邪魔という方は左記をNGお願いします)
友人等などにも教えて、プラス¥4000×人数をゲットできます
https://i.imgur.com/ZCzD8Vc.jpg >>173-177
フラグを設定すれば、.NET Frameworkのみの環境でも必要なランタイムがコピーされて動くのですね!
ありがとうございます。 user.configとか.xmlファイルって、Windowsが不正終了とかで落ちた時
中のデータが欠損したり、変な空白とか書き込まれたりでファイルがおかしくなったら
それを読み込むアプリが一切立ち上がらなくなるの勘弁してほしい 起動時のタイミングでconfigファイルが破損してないかチェックすればいいだけでは? user.configとか.xmlに限定してるけどそれ以外のファイルなら安全だと思ってるの? xmlが壊れるならjsonを使えば良いじゃない。by マリー そこらへんのファイルが壊れるような落ち方したら、exeやdllの中身すら危うい メディアファイルに書き込みしてる最中に落ちたら書き込んでるメディアのどこに被害が出てもおかしくないよ いくらファイルシステムが堅牢でも、その上で動くOSやアプリが死んだら壊れたファイルが出来上がる…って寸法だぁ! ネストは深くないほうが良いと言いますが、二次元配列の展開にはネストが必要ですかね?
2階層くらいまでは普通に使って、3階層にもなると深いと思います。 可読性が損なわれなければ多少のネストはいいだろうよ ネストが深いとコードが読みづらくなりバグが混入しやすくなるので避けたほうが良いと言うレベル
初心者のころは閉じブロックにコメントを書くとかそういうので対処したりしたり出来る
namespaceの指定方法が追加されたのでブロックのネストは一段減らせるようになった 色々なレベルの人が見るならわかり易さに寄せるのも大切 あんまり深いと観辛いから
ネスト1{
_ネスト2{
__ネスト3{
ネスト4{
_ネスト5{
_}
}
__}
_}
}
みたいに描いてる メモリ内では連続して格納されてるはずなんだし、1次元配列としてアクセスさせてくれてもいいのにな >>198
連続してると思いたいのは勝手だが
実際の所はどうなっているか見るまでは分からない >>198
spanか使えば
var array = new int[ 3, 4 ];
var span = MemoryMarshal.CreateSpan( ref array[ 0, 0 ], array.Length ); datagridvewなかなか癖あるな
前の会社だとspread 使ってたから同じことしようとするとなかなか厳しい ■ このスレッドは過去ログ倉庫に格納されています