X



ふらっと C#,C♯,C#(初心者用) Part159
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 6fe5-uQHI)
垢版 |
2023/08/08(火) 09:21:19.30ID:aeM2XQJJ0
!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
0002デフォルトの名無しさん (アウアウウー Sa9d-mBaV)
垢版 |
2023/08/08(火) 13:00:18.48ID:dbHUVIm2a
>>1
O2
0003デフォルトの名無しさん (ワッチョイ c168-greZ)
垢版 |
2023/08/19(土) 19:14:38.83ID:kkSg06R00
char型って1バイトって書いてあるところもあるし2バイトってのもある
どっちが正しいんですか?
0005デフォルトの名無しさん (ワッチョイ c9c6-H9aa)
垢版 |
2023/08/19(土) 22:52:49.03ID:ybh46sJJ0
charの定義はプログラム言語によるけどここはC#スレなので
2バイト、UTF-16の符号単位1つ分
が正しい
「1文字」は定義そのものが面倒なのでそれで説明するのはまずい
C#が世に出た時点ですでにサロゲートペアがあったしね
0014デフォルトの名無しさん (ワッチョイ c132-hPrW)
垢版 |
2023/08/23(水) 02:19:34.38ID:mTUNg4mT0
C#のintに相当するIntegerが16bitのVBAではほとんどLongを使っていたが、
C#だとintが32bitなのでほぼintで済ませてる。
VBAはExcelが32bit版だとC#のLongに相当するLongLongが使えないんだなー。
0020デフォルトの名無しさん (スップ Sdea-ArDi)
垢版 |
2023/08/26(土) 10:42:55.36ID:pvrraVqdd
.net6.0 windows11 でUIAutomationを使おうと思っていますが
using System.Windows.Automation;
でエラーが出ます
Automationが名前空間System.Windowsに存在しないというメッセージが出ています

ソリューションエクスプローラーの依存関係を右クリック→
COM参照の追加→UIAutomationClientにチェックを入れています

ほかに何かしないといけないことはありますか?
それともこの環境だとUIAutomationは使えないのでしょうか
0022デフォルトの名無しさん (ワッチョイ c1c6-4tX8)
垢版 |
2023/08/26(土) 11:32:19.58ID:B+xiINwc0
そもそもSystem.Windows.AutomationはCOM参照の方じゃないよ
そして.NET 6だと多分参照を追加しなくても使える
ただし.csprojのTargetFrameworkがnet6.0-windowsみたいなwindows指定じゃないと使えない
0024デフォルトの名無しさん (スップ Sdea-ArDi)
垢版 |
2023/08/26(土) 18:59:24.42ID:pvrraVqdd
using System.Windows.Automation;

と書いた段階で、Automationのところに赤色の波線が出ている状態です
ビルドした段階で初めてでるようなエラーではありません
0028デフォルトの名無しさん (スップ Sdea-ArDi)
垢版 |
2023/08/27(日) 03:34:05.01ID:5Jl0CLULd
>>25
>>26
だめでした
状況は何も変わっていません

>>27
すごい!使えるようになりました
Projectタグのすぐ内側に入れてみました
まだ動作確認してませんが、見た目大丈夫な感じです

なぜこれで動くのかはまったく分からないので調べてみようかと思います

みなさんありがとうございました
0035デフォルトの名無しさん (ワッチョイ ea74-9/6f)
垢版 |
2023/08/28(月) 10:42:06.23ID:KozVXFn90
VisualStudioを使ってコメント文のショートカットは
他のVSCodeで使われてるCtrl + /にしてつかってるよね、みんなは?

デフォルトの二段階のやつは面倒。
0036デフォルトの名無しさん (ワッチョイ 2501-nP6T)
垢版 |
2023/08/28(月) 10:48:07.63ID:m2uTidtL0
コメント文のショートカットなんて初めて聞いたので、使ってないが回答です
0038デフォルトの名無しさん (ワッチョイ ea74-9/6f)
垢版 |
2023/08/28(月) 12:42:27.82ID:KozVXFn90
>>37
いやtoggle方式になっててCtrl+/だけでアンコメントできる
0041デフォルトの名無しさん (ワッチョイ ea74-9/6f)
垢版 |
2023/08/28(月) 14:50:59.42ID:KozVXFn90
>>36,39
情報弱者か頭がハゲてるのでは?

カーソルが対象の行のどこに存在していてもショートカット1つでコメント/アンコメントが切り換えられるのはすごく便利。
0044デフォルトの名無しさん (ワッチョイ ea74-9/6f)
垢版 |
2023/08/28(月) 16:31:23.03ID:KozVXFn90
>>43
それ、コメントアウトされた行を含む複数行を、まとめてコメントアウトできるよ。
0045デフォルトの名無しさん (ワッチョイ a92f-FmU/)
垢版 |
2023/08/28(月) 17:07:01.73ID:dIRASk8t0
>>44
じゃあ、その行はトグル操作になってないよね
同じコマンドでトグルしたりしなかったりとか俺は嫌だな

つかそもそもの話はキータッチの数であって、トグル動作かどうかじゃなかった気はするがな
0048デフォルトの名無しさん (ワッチョイ 2501-nP6T)
垢版 |
2023/08/29(火) 22:27:28.67ID:MluHN6hm0
そもそもvscode使ってないからなあ
0051デフォルトの名無しさん (ワッチョイ 6d68-lN7b)
垢版 |
2023/08/31(木) 22:01:22.46ID:MIyiOQWI0
リストのreverseってtolist()できたほうがいいですよね
reverseした後代入したりするとき面倒です。
なんでvoidなんですかね
0052デフォルトの名無しさん (ワッチョイ 4ae5-dlFE)
垢版 |
2023/09/01(金) 09:24:47.73ID:BanrKten0
Reverse後に代入ってのがどうしたいのかわからないけど
Reverseはリストクラス自体のメソッドでそのインスタンスを直接操作するけど
OrderByやOrderByDescendingは拡張メソッドでコピーを操作するからコピーが返却されるってだけだよ?
0055デフォルトの名無しさん (ササクッテロラ Sp07-R9B2)
垢版 |
2023/09/02(土) 14:11:47.41ID:9WH2Wl22p
反転したくてしてんだから反転前のは要らんだろ
つまり今のままでいい
0061デフォルトの名無しさん (ワッチョイ ffba-+GqY)
垢版 |
2023/09/05(火) 01:56:59.82ID:Dd7TKmzg0
VS2022でC#コンソールアプリのテンプレートを開くと
Console.WriteLine("Hello, World!");
の一行だけでした。

確か昔(VS2017とか)なら
class Program
{
static void Main(string[] args)

}
みたいなテンプレートだったと思うんですが、変わったんですか?
0064デフォルトの名無しさん (ワッチョイ ffba-+GqY)
垢版 |
2023/09/05(火) 09:27:37.51ID:Dd7TKmzg0
>>62
>>63
そうなんですね。
数年ぶりにプログラムをやりはじめたら、
大きく変わっていて右往左往しました。
0068デフォルトの名無しさん (ワッチョイ 6395-Ylnh)
垢版 |
2023/09/05(火) 16:53:18.32ID:/30Ct0nh0
スクラッチみたいなヴィジュアルスクリプティングって余計難しくならないですか?
0070デフォルトの名無しさん (ワッチョイ 6395-Ylnh)
垢版 |
2023/09/08(金) 18:12:12.15ID:WprVZueP0
プログラミンってどれだけ整理してかけるか、みたいな能力が大事ですか?
こんがらがる
0072デフォルトの名無しさん (ワッチョイ 238e-0kEP)
垢版 |
2023/09/08(金) 18:38:18.39ID:t2Eu/6tA0
>>70
場違いな質問をしていることに気付かない頭の悪さをまずは何とかしろ
0073デフォルトの名無しさん (ササクッテロラ Sp3b-SXjU)
垢版 |
2023/09/09(土) 00:48:02.61ID:x9yY8Tvzp
>>70
機能性表示食品の成分か何かですか?
0075デフォルトの名無しさん (ワッチョイ 0e68-rcnc)
垢版 |
2023/09/13(水) 20:05:26.74ID:CY2QXh+t0
自作ツールの起動中のみ、エクスプローラでファイルを右クリックした際のコンテキストメニューに項目を追加したいのですが、参考ソースはありませんでしょうか?
ググったらフォルダーとドライブの該当ソースはあったのですが、ファイル向けがありませんでした。レジストリーーいじるソースなので、知識不足で…
0076デフォルトの名無しさん (ワッチョイ e3ad-tnQy)
垢版 |
2023/09/13(水) 20:18:20.45ID:t65qTGC00
起動時にレジストリ書き込んで終了時に削除するってやれば一応できるんだろうか…
0079デフォルトの名無しさん (ワッチョイ 0e68-rcnc)
垢版 |
2023/09/13(水) 20:27:27.55ID:CY2QXh+t0
そんなに動的ではなくていいので、初回起動時に登録、アンインストール時に削除します。そこが知りたい訳では御座いません
0083デフォルトの名無しさん (ワッチョイ 0e68-6jLp)
垢版 |
2023/09/14(木) 00:10:51.08ID:ZLIFh0n40
>>82
ありがとう!探してみます!

>>81
そこは重要では無く、質問は、C#のプログラムから下記を行いたいだけの質問です。
>エクスプローラでファイルを右クリックした際のコンテキストメニューに項目を追加したいのですが、参考ソースはありませんでしょうか?
ググったらフォルダーとドライブの該当ソースはあったのですが、ファイル向けがありませんでした。レジストリーをいじるソースなので、知識不足で…
0084デフォルトの名無しさん (ワッチョイ 0e68-6jLp)
垢版 |
2023/09/14(木) 00:17:19.16ID:ZLIFh0n40
質問の仕方が悪く申し訳無いです!
0086デフォルトの名無しさん (ワッチョイ 3b5f-ig21)
垢版 |
2023/09/14(木) 05:38:38.16ID:gj/XTc6D0
>>83
事前に項目を定義した上で LegacyDisable や Extended を着脱(orリネーム)しよう

全ファイル(フォルダ含む)を対象としたいなら * 以下のshell、任意の拡張子/カテゴリ向けなら SystemFileAssociations 下にある各拡張子/カテゴリを示すキー以下の shell に定義すればOK
0087デフォルトの名無しさん (ワッチョイ f6c1-erq7)
垢版 |
2023/09/14(木) 12:32:32.37ID:r0O1DiKO0
二次元配列の取り出し方なんですが、c#の場合はどう展開するんでしょうか?
int[,] map = {
{ 0,0,0,0,0},
{ 0,1,1,0,0},
{ 0,0,0,0,0},
};
for(int i=0;i < array.Length;i++){
for(int j=0;j < array[i].ToString.Length;j++)
{
print(array[i,j]);
}
}

これだとジャグ配列用の書き方になるみたいです。
数値を1つずつプリントしたいです。
0089デフォルトの名無しさん (ワッチョイ f6c1-erq7)
垢版 |
2023/09/14(木) 13:39:49.02ID:r0O1DiKO0
ありがとう
取り出し方が違うんですね
ありがとう(*´ω`*)
0090デフォルトの名無しさん (ワッチョイ f6c1-erq7)
垢版 |
2023/09/15(金) 07:44:46.07ID:bmvdZqUl0
配列の構造をそのまま出力するような関数はc#にはあるでしょうか?
forで要素1つずつ出力する方法はあると思います
配列をそのままprintするとsystem.int32などと出ます
0095デフォルトの名無しさん (ワッチョイ f6c1-erq7)
垢版 |
2023/09/15(金) 17:13:51.63ID:bmvdZqUl0
>>92
すいません
int[,] ar = {
{0,0},{0,0}
}
このような配列だった場合、arをprintするとsystem.int32などとなります。
二重ループで取り出すと、0,0,0,0といった表示になります。

ただ、二次元配列の構造込みで表示されてほしいんです。
以下のようにです。
{0,0},{0,0}
0103デフォルトの名無しさん (ワッチョイ ffc1-YZsW)
垢版 |
2023/09/16(土) 18:11:28.28ID:K2iszC6h0
ありがとうございます
c#だとサクッと出来る関数とかないんですね
0104デフォルトの名無しさん (ワッチョイ ffc1-YZsW)
垢版 |
2023/09/16(土) 18:47:11.29ID:K2iszC6h0
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から始まるんでしょうか?
0110デフォルトの名無しさん (ワッチョイ 0f01-lPYd)
垢版 |
2023/09/16(土) 22:16:10.70ID:ZYPI8Xfl0
皆最初はそんなもんだろ
0111デフォルトの名無しさん (スッップ Sd5f-+Ehs)
垢版 |
2023/09/16(土) 22:48:11.73ID:XdNh0KyJd
初心者以前の問題の気がする
0112デフォルトの名無しさん (ワッチョイ ff4a-Pa4f)
垢版 |
2023/09/16(土) 23:02:36.52ID:G9zf78j00
質問ですが、ファイルを読み書きするときにエラートラップは必要でしょうか

読み書きに失敗するということはHDDかSSDが破損しているということで
そのときにはもうWindows自体が正常に動作していないと思うので、必要ないような気もします
0113デフォルトの名無しさん (ワンミングク MM9f-+vE4)
垢版 |
2023/09/16(土) 23:11:29.35ID:7MGcbjMCM
>>112
馬鹿は消えろ
0116デフォルトの名無しさん (ワッチョイ 7f10-NfV8)
垢版 |
2023/09/17(日) 08:04:35.75ID:FtFGic3I0
.NETつこてるんなら、ちっとはMSのドキュメントでファイルアクセス周りにExceptionの名前でも見てみればいいのに
そしたらどんな理由で起こりえるがもうちょっと解ろうにな
0117デフォルトの名無しさん (ワッチョイ ffc1-YZsW)
垢版 |
2023/09/17(日) 09:51:23.91ID:77Q3086C0
>>105
106
107
109
ありがとうございます
インデックスとレングスのズレを修正マス(*´ω`*)
0118デフォルトの名無しさん (ワッチョイ 7f10-NfV8)
垢版 |
2023/09/17(日) 10:16:09.40ID:FtFGic3I0
ズレを修正っていうか、インデックスとレングスのそれぞれの意味をちゃんと理解しなさい

もう随分古くて、いい加減使うのやめろよっていう言語だけど
インデックスがいくつから始まるか宣言の度にプログラマが決めれるような言語もあるんだよ
0119デフォルトの名無しさん (ワッチョイ ffc1-YZsW)
垢版 |
2023/09/17(日) 12:07:33.50ID:77Q3086C0
unityなのでC#使うしかない状態です。
そんな駄目な言語なんですか、、、?
0122デフォルトの名無しさん (ブーイモ MM4f-oAvq)
垢版 |
2023/09/17(日) 20:10:45.00ID:9h3D7Db8M
終了になると誰が言った?
0124デフォルトの名無しさん (ワッチョイ 7f02-3DZ2)
垢版 |
2023/09/17(日) 20:34:25.46ID:UBpNeHBP0
配列@とAからBを作りたいんだけど、ループさせる以外になにか方法ありますかね?

@ string[] tmp = new string[5] { "A", "", "C", "", "E" };
Astring[] tmp2 = new string[5] { "", "B", "", "D", "" };

B{ "A", "B", "C", "D", "E" };
0125デフォルトの名無しさん (ワッチョイ 0f01-7CbB)
垢版 |
2023/09/17(日) 20:50:35.55ID:q/XPERxS0
>>124
tmp.Zip(tmp2, (s, t) => s + t).ToArray()
0129デフォルトの名無しさん (ワッチョイ 4fe4-ieJ7)
垢版 |
2023/09/17(日) 21:57:16.38ID:nKVQXP6B0
実務レベルでSQL操作するときってORMは使わないもんなの?
EntityFrameworkはそんなに使われてないってどこかの記事で見たんだけど実務だと生のSQL使ったほうがパフォーマンス的に良いとかあるんだろうか
0130デフォルトの名無しさん (JP 0Hbf-ORtG)
垢版 |
2023/09/17(日) 22:40:05.81ID:bD00FXRnH
自分に裁量があるときはEntityFrameworkを避けてDapper+ちょっとマイナーなSQL(CRUD)生成実行ライブラリを使うかなあ
EFのSaveChangesで更新という仕組みがいまだに好きになれない
0133デフォルトの名無しさん (スッップ Sd5f-+Ehs)
垢版 |
2023/09/18(月) 00:00:53.08ID:ljzt2haMd
>>132
馬鹿は死ねよ
0135デフォルトの名無しさん (ワッチョイ 3f74-oAvq)
垢版 |
2023/09/18(月) 09:07:12.63ID:cY6Rxg840
Unityは終了ですか?
0137デフォルトの名無しさん (アウアウウー Sa53-HRje)
垢版 |
2023/09/18(月) 10:40:42.12ID:+ud3D/1qa
>>135
Unityは大盛況だよ
ただしム板のC#はUnity専用じゃないから
C#スレよりUnityスレ逝った方が良いと思う
0138デフォルトの名無しさん (ワッチョイ 8f8e-+Ehs)
垢版 |
2023/09/18(月) 13:45:40.55ID:BTbG+gI30
Unityが阿鼻叫喚なのを知らんのか
0141デフォルトの名無しさん (アウアウウー Sa53-HRje)
垢版 |
2023/09/18(月) 15:06:46.43ID:+ud3D/1qa
いずれにせよマ板の話題
ム板のC#スレにはふさわしくない
0142デフォルトの名無しさん (ワッチョイ ff66-mbMR)
垢版 |
2023/09/18(月) 16:58:59.73ID:aZlcjabF0
下記の_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に取り出したいです。
}
0148デフォルトの名無しさん (ワッチョイ ff66-mbMR)
垢版 |
2023/09/18(月) 19:41:40.45ID:aZlcjabF0
>string _B = _A.First().b;

>WhereじゃなくてFirstOrDefaultにして_A?.bにしとけ

0142ですが、共に期待する動作を確認できました。
ありがとうございます。
0157デフォルトの名無しさん (ワッチョイ 3fd7-X4yw)
垢版 |
2023/09/20(水) 09:30:27.44ID:RzMk4JBe0
c#でwin/linuxのデスクトップアプリ作れるGUIフレームワーク緩く探してるんだけど今は何がおすすめですかね
1年くらい前に軽く探した感じだとavalonia,mauiあたりは新興すぎて開発途中っぽいしなあとかで
とりあえず他の開発で慣れてたunityでお茶を濁してました
MVC綺麗に分けるのだけじゃなくて、コードだけで画面作って小物サっと組むのもできたらいいなとか思ってます
0158デフォルトの名無しさん (ワッチョイ 7f7b-YZsW)
垢版 |
2023/09/20(水) 16:48:10.23ID:lL1Mt70W0
Avaloniaは順調に完成度上がってきてて
OSSあるあるでIME周りが残念だけど10.xの頃よりはマシにはなってきてるし、
個人的にだが小さいツール作る分には致命的なバグや仕様はないかなと思う
ドキュメントは少ないが、WPFの開発経験があればだいたい勘でイケる
逆に言うとWPF分かってないと辛いと思う
MAUIは知らん
0162デフォルトの名無しさん (ワッチョイ 3f79-EhfR)
垢版 |
2023/09/21(木) 00:17:30.38ID:H7YqoNcR0
linuxのGUIって基礎から終わってて
その糞環境の上でまともなアプリが作られるモチベも湧くはずもなく
それに目を背けながらwebベースのUIばかりが作られていく
要するに関わるだけ時間の無駄
0163デフォルトの名無しさん (ワッチョイ cf01-9C00)
垢版 |
2023/09/21(木) 02:13:58.53ID:5L348Pt10
【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】

【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法

ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方

月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です

フリーランスの年収は平均いくら?年収1000万円以上の割合とは

2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い!
0164デフォルトの名無しさん (ワッチョイ 0fb3-8NHV)
垢版 |
2023/09/21(木) 02:43:37.97ID:XMO7pnIx0
C#はいろんなOSで動くらしいのですが、それはGUIを含みますか?
自分の環境LinuxMintにMonoDeveloperを入れているのですが
GUIはGtkが使用されています。

Gtkを使ったアプリは・・・WinddowsやMacでは動きませんよね?
0173デフォルトの名無しさん (ワッチョイ 3f42-mUcE)
垢版 |
2023/09/21(木) 17:12:45.87ID:k97TlGtN0
>>168
WinUI3でストアに公開しなければ、unpaclagedってコンパイルしたバイナリフォルダの内容全てをコピーして実行させることになります
Windows10のアップデート済みのパソコンならそのまんま動くはず
0174デフォルトの名無しさん (オイコラミネオ MMc3-NfV8)
垢版 |
2023/09/21(木) 17:39:42.68ID:2p2oI5ZlM
WPFスレでそんな質問はないけどなw
普通に.net frameworkだけでは動かない
.Net6以降のみサポートだから
特殊なことをして動かせるかもしれないけどそんな質問してくる人間には無理だろう

C#使ったWinUI3はバイナリコピーして実行させても必要な.net coreのバージョンがインストールされてがないと落ちる
インストーラーを適切に作ると.net coreのバイナリをダウンロードしようとする
0176デフォルトの名無しさん (オイコラミネオ MMc3-NfV8)
垢版 |
2023/09/21(木) 20:00:31.16ID:2p2oI5ZlM
>>175
フラグ設定しないとうまくいかないのか知らなかった
自分ところではずっと失敗してたんだ

多分この人が上の質問をしてるので何が何でも.NET6を使いたくないのだと思ってる

8 名前:デフォルトの名無しさん[] 投稿日:2023/09/20(水) 17:54:12.88 ID:jVfboGwk
WinUIって.NET6を入れずに使えますか?
VS2022のプロジェクトだと、.NET Frameworkが無くて.NET6になってしまいます
0181168 (ワッチョイ 4fae-YZsW)
垢版 |
2023/09/22(金) 10:37:35.20ID:VQzjgaDN0
>>173-177
フラグを設定すれば、.NET Frameworkのみの環境でも必要なランタイムがコピーされて動くのですね!
ありがとうございます。
0182デフォルトの名無しさん (ワッチョイ 3fea-Ohbr)
垢版 |
2023/09/22(金) 11:31:13.56ID:yLHBBLv80
user.configとか.xmlファイルって、Windowsが不正終了とかで落ちた時
中のデータが欠損したり、変な空白とか書き込まれたりでファイルがおかしくなったら
それを読み込むアプリが一切立ち上がらなくなるの勘弁してほしい
0183デフォルトの名無しさん (ワッチョイ 7f7b-YZsW)
垢版 |
2023/09/22(金) 12:26:32.62ID:n+mdlzq10
起動時のタイミングでconfigファイルが破損してないかチェックすればいいだけでは?
0184デフォルトの名無しさん (アウアウウー Sa53-9C00)
垢版 |
2023/09/22(金) 12:30:28.76ID:dkRHHNCea
user.configとか.xmlに限定してるけどそれ以外のファイルなら安全だと思ってるの?
0188デフォルトの名無しさん (ワッチョイ 4fb0-gBtz)
垢版 |
2023/09/22(金) 13:50:44.91ID:wJrbx3oK0
メディアファイルに書き込みしてる最中に落ちたら書き込んでるメディアのどこに被害が出てもおかしくないよ
0191デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/23(土) 06:16:34.70ID:CDvy2U7s0
ネストは深くないほうが良いと言いますが、二次元配列の展開にはネストが必要ですかね?
2階層くらいまでは普通に使って、3階層にもなると深いと思います。
0194デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
垢版 |
2023/09/23(土) 11:22:34.41ID:CxeGIQq5M
ネストが深いとコードが読みづらくなりバグが混入しやすくなるので避けたほうが良いと言うレベル
初心者のころは閉じブロックにコメントを書くとかそういうので対処したりしたり出来る

namespaceの指定方法が追加されたのでブロックのネストは一段減らせるようになった
0196デフォルトの名無しさん (アウアウウー Sacf-PB4I)
垢版 |
2023/09/23(土) 11:52:24.24ID:i9fpyxKga
あんまり深いと観辛いから
ネスト1{
_ネスト2{
__ネスト3{
ネスト4{
_ネスト5{
_}
}
__}
_}
}
みたいに描いてる
0197デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/23(土) 12:47:33.25ID:CDvy2U7s0
ありがとう(*´ω`*)
0198デフォルトの名無しさん (ワッチョイ 0aff-8erA)
垢版 |
2023/09/26(火) 10:56:33.46ID:csk5Q3Ms0
メモリ内では連続して格納されてるはずなんだし、1次元配列としてアクセスさせてくれてもいいのにな
0199デフォルトの名無しさん (ワッチョイ 0aa1-oBwi)
垢版 |
2023/09/26(火) 11:02:40.27ID:Pu+bW/hr0
>>198
連続してると思いたいのは勝手だが
実際の所はどうなっているか見るまでは分からない
0203デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/27(水) 18:09:52.69ID:IoVqC5pd0
関数化はモジュール化とは言わないですか?
一般的に別スクリプトに分けることをモジュール化というらしいです。
1つのスクリプトにあらゆる機能を書いてしまうと、理解が出来なくなるみたいです。
再利用と、可読性を向上させるためにモジュール化があるのかなと。
0206デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/27(水) 18:45:10.63ID:IoVqC5pd0
gptさんに聞きました
0207デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/27(水) 18:46:56.08ID:I/ozjFX50
嘘つきgptか…奴の話は、話半分で聞いとけ
0209デフォルトの名無しさん (ワッチョイ 866b-lrL5)
垢版 |
2023/09/28(木) 00:24:01.44ID:DB6o6lmL0
ChatGPTをありがたがるのは無知蒙昧の証し
0210デフォルトの名無しさん (アウアウウー Sacf-j351)
垢版 |
2023/09/28(木) 00:36:48.85ID:wsjwbbNAa
>>203
1関数=1モジュール観たいな糞言語ならそうかもな
0214デフォルトの名無しさん (ワッチョイ ea74-iHBT)
垢版 |
2023/09/28(木) 07:16:02.49ID:sFf5t7op0
もろて
morote
0216デフォルトの名無しさん (アウアウウー Sacf-j351)
垢版 |
2023/09/28(木) 09:58:47.34ID:7+/lnWbqa
やらんでもろて=やらないでくださいおながいしますわ
0218デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/28(木) 10:12:26.69ID:uRtj8fwF0
chatGPTは、会話する友達のいないボッチが寂しさを紛らわす為の癒しツールだからなぁ
0222デフォルトの名無しさん (ワッチョイ 8701-DeI3)
垢版 |
2023/09/28(木) 12:52:33.59ID:lN71jGVG0
>>203
>関数化はモジュール化とは言わないですか?
一般的には言わない
モジュール/モジュール化という言葉は文脈によって意味が多岐に渡る
広い意味で再利用可能・入れ替え可能な部品に分割することをモジュール化と呼ぶこともあるので
ある処理を抽出して関数化することもモジュール化と言えないこともないが一般的ではない
関数よりもっと大きな単位を指して使われることがほとんど
狭い意味だと使ってる言語で定義されてる”モジュール”に分割することを言う

>一般的に別スクリプトに分けることをモジュール化というらしいです。
Pythonのように1ファイルが1モジュールになる言語であれば
別スクリプトに分けることとが狭い意味のモジュール化
C#にもモジュールの定義はあるにはあるけど通常意識されないものなので
モジュール化という言葉が狭い意味で使われることはほとんどない
0225デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 04:46:58.75ID:sbQ57Iwc0
質問です
他人のコードを読むという行為は「分解」なのでしょうか?
他人のコードがわかりにくい場合は、スクリプトを分けるなどして分解するのが良いですか?
0227デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 06:50:21.28ID:sbQ57Iwc0
ゲーム用のプログラムなのですが、ロジックを知りたいです
0229デフォルトの名無しさん (ワッチョイ 0794-oBwi)
垢版 |
2023/09/29(金) 07:35:41.02ID:R/ASBcAr0
リバースエンジニアリングは、マシン語になった実行ファイルやROMから逆アセンブルなどを用いて命令コードに変換して処理内容を読み取る技術だろ
ソースコード自体があるなら単に読めばいいだけ
0230デフォルトの名無しさん (ワッチョイ 0794-oBwi)
垢版 |
2023/09/29(金) 07:37:22.59ID:R/ASBcAr0
スクリプト?
ああ、スクリプト言語で書かれているのか
それならスクリプト自体を幾ら読んでも分からないよw
実際に動作を定義してるのはスクリプトエンジン側だからなぁ
0231デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 08:13:03.19ID:2i5v5Rt90
ゲームのスクリプト読んでも、分かるのはそのゲームのストーリーくらいかなぁ?
0234デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 09:11:19.11ID:2i5v5Rt90
ソースコード自体にもう内容書かれてんのにリバースエンジニアリングとはw
0238デフォルトの名無しさん (ワッチョイ 0a02-4KCz)
垢版 |
2023/09/29(金) 10:17:17.30ID:LLT8Nv/70
単に読んでるだけでわかりにくにならデバッグ実行して動作とコードの関係を把握しながら読むと理解しやすい
途中で変数の値の確認や変更もやると確証がもてる
0239デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 13:16:35.37ID:sbQ57Iwc0
>>237
https://gist.github.com/baba-s/e4da98f6fce2b6cca36b0cf3bb91f9d0
これが倉庫番のコードなのですが、全て1つのスクリプトに書かれています
これが分かりづらいので、分割、分解して理解を深めたいです

>>232
自分でゲームを作りたいので、分解してロジックを理解したいです
他人のコードを読み解く能力が上達には必須と考えました
0240デフォルトの名無しさん (スフッ Sdaa-TrDt)
垢版 |
2023/09/29(金) 13:26:47.91ID:y68JSf5Yd
>>239
この規模だと分割したらさらに判らなくなるだけだと思う
0242デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 13:34:09.53ID:2i5v5Rt90
スクリプト?
0243デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
垢版 |
2023/09/29(金) 13:45:18.92ID:jReLA3HcM
40年前ぐらい小学生のころに雑誌に載ってた倉庫番打ち込んだな
おそらく7~8ページ程度だったけど2週間ぐらいかかった
ロジックはほとんどなくドット絵のデータがメイン
そんな思いをしなくても遊べる今は恵まれてるなと思う

打ち込んでは実行してタイプミス潰し
倉庫番はリアルタイム性などない単純なパズルだから打ち込んでると嫌でも仕組みはわかった
何しろ状態を持ってない
全部マップデータ通りで単純明快

多分コード読んでるだけじゃ理解は深まらない
自分の見たい部分しか見ないから
コード打ち込むと全部舐めなければならない
そのうえで改変して挙動を確かめる
0244デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
垢版 |
2023/09/29(金) 14:04:01.36ID:jReLA3HcM
大体2~3本似たようなプログラムを打ち込むと
仕組みが大体頭に入る

やってることは非常に単純
小学生にも理解出来る
そして普通に自分でも書ける

多分何百本分のコードを読んでも理解度は低いと思う
0245デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
垢版 |
2023/09/29(金) 14:14:09.16ID:jReLA3HcM
そのころはコードにコメントなどもちろんなくインターネットもなく
下手するとマニュアルもなかった

でも数本打ち込むと大体わかった
英単語も読めない小学生にもわかるんだから誰にでも理解できると思う
0250デフォルトの名無しさん (ワッチョイ 0a1f-oBwi)
垢版 |
2023/09/29(金) 14:34:27.27ID:2i5v5Rt90
>>248
ああ、そう言う位置付けなのか
文字通りスクリプトなんだろうなぁ
ビルドしないで直接動かすんだろ?
0252デフォルトの名無しさん (ササクッテロラ Sp23-oBwi)
垢版 |
2023/09/29(金) 14:39:11.07ID:ty79BRMgp
ゲームの細かい動きの部分だけスクリプトで書いてるみたいな感じだと全体を理解するの難しいかもね
0254デフォルトの名無しさん (オイコラミネオ MM0b-WMZf)
垢版 |
2023/09/29(金) 15:00:48.68ID:jReLA3HcM
倉庫番自体のロジックは非常に単純
オセロより簡単ともいえる

キャラが空白のところへ動かせるようにつくる
移動先に荷物があってその先が空白ならキャラと荷物が動く
そのあと終わってるかどうか判定するだけ
0256デフォルトの名無しさん (ワッチョイ de7b-/va4)
垢版 |
2023/09/29(金) 15:37:41.47ID:3lAWIYxj0
>>239
こういうのこそChatGPTの使いどころでは?
0258デフォルトの名無しさん (JP 0H42-yQCX)
垢版 |
2023/09/29(金) 15:41:33.40ID:tU9ZFt65H
はてな英字表記がNGワードだった

作者が全部解説してるのにこっち見ないで完成形のソースだけ見てなにをどう理解したいのかわからない
0259デフォルトの名無しさん (ワッチョイ 869b-lrL5)
垢版 |
2023/09/29(金) 15:56:47.20ID:C71JBRro0
>>239
うだうだ人に聞いてるお前には無理だと思う
0260デフォルトの名無しさん (スッップ Sdaa-+j9z)
垢版 |
2023/09/29(金) 16:10:41.00ID:DNLFnh+Cd
>>225にしても>>203にしても質問がヘタというか的外れというか
それ聞いてどうするの?言葉の定義を確認して何になるの?って感じが

コードのここの意味が解りません、とかの具体的な質問の方がよっぽどマシ
0265デフォルトの名無しさん (ワッチョイ 0744-oBwi)
垢版 |
2023/09/29(金) 17:58:57.69ID:R/ASBcAr0
>>263
意味不明w
0267デフォルトの名無しさん (ワッチョイ 6ab0-/va4)
垢版 |
2023/09/29(金) 18:01:17.51ID:sbQ57Iwc0
質問者です
確かに何が分からないのか言語化出来ないかもしれません

丸投げ質問にならないようにもう少しもがきます
ぼんやりした事を言うと、分からない部分は処理の流れですかね。
0269デフォルトの名無しさん (スッップ Sdaa-+j9z)
垢版 |
2023/09/29(金) 18:30:54.80ID:DNLFnh+Cd
Unity詳しくないけど必要に応じてSokobanクラスの各メソッドが呼び出される仕組みじゃないのこれ?
処理の流れってのがそのUnityが仕切ってる部分のことを言ってるなら
このクラスをいくら眺めても理解できなさそうだけども
0271デフォルトの名無しさん (スッップ Sdaa-+j9z)
垢版 |
2023/09/29(金) 18:51:42.76ID:DNLFnh+Cd
なるほど、たしかにコメントにもそう書いてある
もっとあれこれ呼ばれるのかと思ったら意外にシンプル
てことは>>267が分からないって言ってる「処理の流れ」はクラスの中の話の可能性が高い?
であればコードを読み進めてここで詰まったとか具体的な情報が欲しいところ
0274デフォルトの名無しさん (ブーイモ MMef-VO9t)
垢版 |
2023/09/29(金) 22:00:42.65ID:WQUdW1Y0M
こんだけみっちりコメント書いてあって、メソッドも分かれてるから、後は気合だけのような…
0277デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
垢版 |
2023/09/30(土) 00:58:15.11ID:tFuDf2bYM
千里の道も一歩からと言うけど100m先のコンビニへもまず一歩踏み出さないと到達しない
プログラムでバグが出るのは当たり前でそれを潰すのは経験を積むしかない
コードを読むだけではそこらへんは無理
文法が分かったとして実際に書かないと理解は深まらない

見てもわからないなら紙にでも書き出して考えることもできる
小学生のころは配列の内容を方眼紙とかに書いてプログラムを再現して理解しようとしてた
それがいつの間にか脳内ですべて完結するようになった
期待通りにならなくても結果を見て経験からこうだろうなと見当を付けられるようになった

小学生より賢いはずなんだからなにか手立てはあるだろう
0278デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
垢版 |
2023/09/30(土) 03:26:23.71ID:qC94828iM
実際にUnityを使っていて一度でも空のプロジェクトを作ったことがあれば>>270程度のことは直ぐに分かる
中身が空のスケルトンコードがそのまま作られるのでUnityと言うゲームエンジンのフレームワークの基本構造が見えてくる
コードを読む前にまず手を動かして見なければ気付けないことも多い
0279デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 06:13:30.76ID:lCW6xIVF0
>>277
倉庫番のコードを書くようにしますが、その場合は他人のコードを完璧に真似るつもりでやったほうがいいですか?自己流でやっていたことが良くないと気づいたので。他人のやり方まで取り込むのが上達への近道かなと思ってます
0280デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 06:20:57.56ID:lCW6xIVF0
他人のコードを理解する、読み解く上でのやり方が確立されていない感じです
0282デフォルトの名無しさん (ワッチョイ 2d82-cP1N)
垢版 |
2023/09/30(土) 08:57:55.29ID:1LHvsOST0
基礎が身についてないのにやみくもに書き写したところで書く能力が身につくわけないじゃん
自分語りの詐欺的商法に騙されるなよ
ちょっと考えればわかるだろ

キミに必要なのは公式チュートリアルと入門書
0284デフォルトの名無しさん (スップ Sd43-sBWh)
垢版 |
2023/09/30(土) 10:00:47.45ID:RNKSTVVAd
>>280
小難しい理屈はどうでもいいから、>>239のソースを読んでて分からないところを具体的に質問しよう
質問が具体的な方がこちらも質問者のレベルを推し量れるしアドバイスもしやすい
0285デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 10:21:02.95ID:lCW6xIVF0
>>284
手を動かさないと何が分からないかも、分からないという状態から脱せないでしょうか?
0286デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
垢版 |
2023/09/30(土) 10:27:45.96ID:tFuDf2bYM
入門したてはタイピングが苦痛だった
一文字ずつキーボードとにらめっこ
p r i n t と一文字ずつ探してやっと一行を入れ終わる
そして実行

自分が今一行入力した分だけ画面が変わったりする
今書いたコードはこういうことなんだと分かる
それが体験で経験

誰がどのように入力しても結果は同じ
0289デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/09/30(土) 10:44:33.67ID:+WV6fTrGa
>>252
東京パソコンクラブのノリだな
0290デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
垢版 |
2023/09/30(土) 10:49:18.06ID:tFuDf2bYM
英単語なんか知らないから一文字ずつアルファベットを暗唱しながらタイプしていく
呪文を打ち込んでいく
一行入力も辛いので途中で実行して進展を見る
入力したコードの理解が深まる
そうして小さな成功体験を積み重ねる

そのうち前に入力したのと同じような内容が出てくる
今度は実行しなくても結果がわかる
実行してみて違うなら違いを探す

こうして一歩ずつ進む

コードを読んだりコメントを読むだけだとこういうのが失われて分かった気にだけなる
実際にコードを書けないし着想もできない
0291デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/09/30(土) 11:04:04.96ID:+WV6fTrGa
>>285 は手が動いても頭が動かないタイプと観た
0292デフォルトの名無しさん (ワッチョイ 9bbc-VEJP)
垢版 |
2023/09/30(土) 13:07:46.30ID:Xbo2Ry+C0
それ、逆じゃないのかな。
手を動かす前にうだうだ考えるウチに投げ出すタイプというか。

なにも考えずにとりあえずコードを打ち込んでみて、動かしてみればいいじゃない。
そしてその動くプログラムのコードを書いているときや後から眺めたときに「こうした方がいいんじゃない?」って思ったところを何度でも直して、また動かしてみる、と。

実際、自分がやるのもそれに近いところがなくもないし。
分からないところをネットで調べてコピペして動かして、足りないところや考慮すべきところを直し加えてってのを何回かやったりやらなかったり。
0293デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/09/30(土) 14:30:45.31ID:lCW6xIVF0
>>288
unityで動かしております
>>290
やはり手を動かします
>>284
では質問させてもらいます
gptに聞いたのですが、良くわかりませんでした

https://gist.github.com/baba-s/e4da98f6fce2b6cca36b0cf3bb91f9d0
TileTypeという列挙型があり、tiletype型を使用してtilelist変数を宣言しているのが分からないです。
普通、インデックスにアクセスする場合は整数型を使うと思うんですが。

やはり、基礎が出来てないなと
0294デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
垢版 |
2023/09/30(土) 14:47:09.79ID:jRqEkae9M
例えばデバッガーでマップの配列の中を確認する場合、無味乾燥な整数で状態表示されるより列挙変数で表示された方が分かりやすいだろ
プレイヤー視点ではなく開発者視点で分かりやすくしているだけ
0295デフォルトの名無しさん (スップ Sd43-sBWh)
垢版 |
2023/09/30(土) 15:02:25.67ID:RNKSTVVAd
>>293
>普通、インデックスにアクセスする場合は整数型を使うと思うんですが。
インデックスってのはtileList[x, y]のxとyのこと
この場合もxとyは整数型でしょ
インデックス「に」って表現してるけど何かと勘違いしてる?
0297デフォルトの名無しさん (オイコラミネオ MMd1-VEJP)
垢版 |
2023/09/30(土) 15:27:57.46ID:tFuDf2bYM
抽象的な話じゃない説明

例えば数値で壁を1で荷物を3とかにすると…
コード内で1とか3の数字が出てくるがそれが何なのか覚えてないとわからない
データの種類が100種類とかあると管理だけで大変

それを改善する場合に数字じゃなくて文字で '壁' とか'荷'とか'人'とかにもできる

でもこの場合も問題がある

気まぐれで壁や荷物を赤い壁と青い壁、赤い荷物と青い荷物などにしたくなった場合にどうするか?
別に色情報持つとか考えなくてはならない
それだったらTypeでRedWallとかにしたほうがいい

更に後でRedWallをやめたくなった場合にはenumからRedWallを削る
そうするとIDEにエラー表示が出て修正箇所がわかる
これが数字だと修正を自力で探して頑張るしかない
0298デフォルトの名無しさん (ワッチョイ 9b0c-RAiU)
垢版 |
2023/09/30(土) 16:04:48.60ID:fUSk+kCE0
>>293
ウザイことこの上ない
まずは入門書を買って読め
0299デフォルトの名無しさん (ワッチョイ ab9a-cP1N)
垢版 |
2023/09/30(土) 16:20:33.29ID:kuFk0VAS0
勘違いしてそうなので基本的なことから書くと
int[3]は[0, 0, 0]のように各要素がint型で長さ3の1次元配列を示す型
string[3]は[“a”, ”bb”, “ccd”]のように各要素がstring型で長さ3の1次元配列を示す型
TileType[3]は[TileType.NONE, TileType.PLAYER, TileType.GROUND]のように各要素がTileType型で長さ3の1次元配列を示す型

var tiles = new TileType[3]{TileType.NONE, TileType.PLAYER, TileType.GROUND};
if (tiles[0] == TileType.PLAYER) do_something;
のような使い方をする

TileType[10, 10]は各要素がTileType型で10×10の2次元配列を示す型
0300デフォルトの名無しさん (ワッチョイ 2d1e-UA51)
垢版 |
2023/09/30(土) 16:43:41.11ID:rxNaOE9c0
可読性の高いRuby で、3目並べが並んだかどうかの判定だけでも、こんなに書く。
ましてや他言語は可読性も低いし、他人のコードなど読めるわけがない!

他人のコードを読むことを勧めるような香具師は嘘。
100行の内、5行ぐらいしか読んでいない

input_ary = [ ["x","","", "x","","", "o","o","o"],
["o","","x", "","o","x", "","o","x"],
["x","o","o", "","x","", "o","","x"],
["x","","o", "x","o","", "o","",""],
["o","x","o", "","x","", "","o","x"] ]

def check_win( board_ary )
puts "-" * 40

diag_ary = Array.new( 3 ) # 斜め
diag_ary[ 0 ] = board_ary[ 0 ]
diag_ary[ 1 ] = board_ary[ 4 ]
diag_ary[ 2 ] = board_ary[ 8 ]
return true if diag_ary.all? { |cell| cell == "o" } ||
diag_ary.all? { |cell| cell == "x" }

diag_ary[ 0 ] = board_ary[ 2 ]
# diag_ary[ 1 ] = board_ary[ 4 ]
diag_ary[ 2 ] = board_ary[ 6 ]
return true if diag_ary.all? { |cell| cell == "o" } ||
diag_ary.all? { |cell| cell == "x" }

次へ続く
0301300 (ワッチョイ 2d1e-UA51)
垢版 |
2023/09/30(土) 16:44:26.02ID:rxNaOE9c0
前の続き

p outer_ary = board_ary.each_slice( 3 ).to_a # 3×3 の配列
outer_ary.each do |inner_ary|
p inner_ary
return true if inner_ary.all? { |cell| cell == "o" } ||
inner_ary.all? { |cell| cell == "x" }
end

puts "転置後"
p outer_ary2 = outer_ary.transpose # 転置
outer_ary2.each do |inner_ary|
p inner_ary
return true if inner_ary.all? { |cell| cell == "o" } ||
inner_ary.all? { |cell| cell == "x" }
end

false
end

res = input_ary.map { |ary| check_win( ary ) }
puts "-" * 40
p res #=> [true, true, true, true, false]
0302300 (ワッチョイ 2d1e-UA51)
垢版 |
2023/09/30(土) 16:56:49.16ID:rxNaOE9c0
仕様から、コードは書けるが、
コードから仕様を推測するのは、10倍以上難しい

他人のコードを読むと、膨大な時間の無駄で、
自作していないから身につかない

3目並べとか、じゃんけんとか、素数判定とか、
簡単な所から自作すべき!

解説が無いような、他人のコードを絶対に読んではならない!
膨大な時間の無駄
0303デフォルトの名無しさん (ワンミングク MMa3-E1cW)
垢版 |
2023/09/30(土) 18:10:18.46ID:Ag7bGIUIM
しつこい馬鹿のせいでrubyキチガイまで出てきた
0304デフォルトの名無しさん (ワッチョイ 8501-6YkV)
垢版 |
2023/09/30(土) 18:43:08.79ID:UMbhW8aD0
昔々BASICインタプリタと横スクロールゲーを全てレポート用紙に逆アセンブルして分析したのはメチャ役に立った
初心者が(簡単な)ゲームの分析、理解することは役立つこと多いと思うよ
0305デフォルトの名無しさん (ワンミングク MMa3-AwC8)
垢版 |
2023/09/30(土) 20:59:11.77ID:U9V2qVkaM
人に聞きまくるだけの奴には無理だぞ
方法論以前の問題
0306デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/10/01(日) 10:33:20.05ID:5ao4WmOt0
>>294
回答どうも
理解が悪いです

列挙型って数字でもあるんですか?
それぞれの文字列にインデックスがあると。
0314デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/10/01(日) 12:44:57.25ID:Je269Bs00
>>307
ありがとうございます
https://baba-s.はてなぶろぐ.com/entry/2018/03/30/085000
tileList = new TileType[ columns, rows ];
の部分でtiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入しているあたりが分からないです。
何らかの文字列の定数が入ると考えていますた
0316デフォルトの名無しさん (ワッチョイ 9b9b-RAiU)
垢版 |
2023/10/02(月) 02:06:24.20ID:NgblnbYV0
他人の助言には絶対に耳を傾けないタイプ
0317デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/10/02(月) 06:20:59.94ID:TDDpdEaf0
>>315
必要なところだけやっていくやり方でやってますが、そういうやり方じゃ駄目なんですか?
配列宣言は分かっているんですが、型が違いますよね
>>316
聞きますが、全てではないです
0318デフォルトの名無しさん (ワントンキン MMa3-E1cW)
垢版 |
2023/10/02(月) 07:26:58.07ID:lRooFwx4M
ダメだこいつ
0319デフォルトの名無しさん (ワッチョイ 8501-6YkV)
垢版 |
2023/10/02(月) 07:50:32.09ID:eOR7lDrh0
>>314
>tileList = new TileType[ columns, rows ];
元ネタ見てないけど、↑を見てこう考えることができるように基礎知識、経験が必要
・tileListに画面の状態を格納するんだな
・二次元配列としてcolumns, rowsの数だけ確保と
・二次元配列に代入する値はTileType型ね(intとかのリテラル値でなくキチンと定義してるのか)
な感じ

>「tiletype型には定数の文字列が入ると思っていましたが」
ある程度予想しながらソースは読みますが、経験不足で予想外れるのはまだ仕方ない
>「整数値であるcolumnsとrowsを代入している」
代入はしていない。これから値を格納するための二次元配列を確保してるだけ

まだc#の記法がわかってない未熟なだけなので、何もかも貪欲に覚えて。
今やってることは無駄になることは何もない。間違えてても。頭と手をドンドン動かして吸収していくのだ
0320デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
垢版 |
2023/10/02(月) 08:40:07.92ID:KRZkbw82M
>>317
この倉庫番のコードではマップのデータをcsv形式のテキストで設定してtileListという名の配列に格納している
格納する際に配列の要素はcsv内の整数データからTileTypeで定義された列挙型の変数に変換される
具体的な配列の中身を確認した結果が>>309
実際にコードを動かして見ればすぐ分かるだろ
0321デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
垢版 |
2023/10/02(月) 08:40:23.40ID:KRZkbw82M
>>317
この倉庫番のコードではマップのデータをcsv形式のテキストで設定してtileListという名の配列に格納している
格納する際に配列の要素はcsv内の整数データからTileTypeで定義された列挙型の変数に変換される
具体的な配列の中身を確認した結果が>>309
実際にコードを動かして見ればすぐ分かるだろ
0324デフォルトの名無しさん (ワッチョイ 23bc-uznD)
垢版 |
2023/10/02(月) 09:26:07.11ID:lKJ+23Y70
>>317
配列宣言において型が違うことは重要じゃないよ
どんな型の配列だって作れるわけだから
それが分からないことこそが基礎ができてない証拠であって
君の言う「必要なところ」がやれてないということ
>>315のリンク先をきちんと理解すれば>>314
>tiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入しているあたりが分からないです。
>何らかの文字列の定数が入ると考えていますた
という疑問と想定が間違っていたことに気づく
まずそこから始めよう
0326デフォルトの名無しさん (ワッチョイ 9bc8-RAiU)
垢版 |
2023/10/02(月) 12:48:13.11ID:NgblnbYV0
批判は一切受付けません!のスタイル
そもそもこんなことに何日も掛けて進まない時点でこいつには無理
0328デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/10/02(月) 15:30:17.92ID:TDDpdEaf0
>>318
>>325
返信してくれた5人が違う事を言ってたら、その中からどれか選ぶしかないじゃないですか。
あと、基礎やるにしてもどうせすべて使うわけじゃないし、必要な部分だけやるスタイルです
>>324
リンク先見てきます
0329デフォルトの名無しさん (ワッチョイ 9b9b-RAiU)
垢版 |
2023/10/02(月) 15:35:28.81ID:NgblnbYV0
要約すると、
基礎を学ぶ気はない貴様らは俺の聞いたことに答えればいいんだ

つまり、教えてもらおうではなく聞きだそうというスタイル
0330デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/10/02(月) 15:36:53.97ID:TDDpdEaf0
>>329情報源は色々です
0332デフォルトの名無しさん (ワッチョイ 85ad-6Yc9)
垢版 |
2023/10/02(月) 16:21:12.93ID:f2fMpIlB0
このレベルの基礎はすべて使うけどね
0333デフォルトの名無しさん (ラクッペペ MMcb-/u/1)
垢版 |
2023/10/02(月) 16:26:16.56ID:ATaGJaaDM
とりあえず環境構築してるならまずサンプルコードそのままコピペして実行しろ
いろいろ考えながらコードを弄っているうちに分かってくるからさ
疑問点は人に聞く前にまず自分で試して経験しろ
0334デフォルトの名無しさん (ワッチョイ 2d34-uQQ6)
垢版 |
2023/10/02(月) 16:36:07.28ID:c5cuOzSD0
visual studioでステップ実行汁
0335デフォルトの名無しさん (アウアウウー Sa89-5C2y)
垢版 |
2023/10/02(月) 16:40:30.40ID:sFvf9xp1a
>>327
>>331
ほんそれ
荒らしの相手レスする香具師も荒らしと看做せばいい
質問オウム返しはそもそも問題解決する気が無くて荒らしたいのだろう
0336デフォルトの名無しさん (ワッチョイ 8501-6YkV)
垢版 |
2023/10/02(月) 17:29:56.66ID:eOR7lDrh0
色々なブレイクポイントで止めて中身を確認、理解する
理解できない部分は置いといて次に進む繰り返し
過去の疑問も解けていく

これは必須の作業。これをやればほとんどの疑問、分析は自己解決できる

昔はPRINTいっぱい埋め込んだものだ
今は楽ちん
0338デフォルトの名無しさん (ワッチョイ 9bcb-2pcI)
垢版 |
2023/10/02(月) 20:13:50.59ID:TDDpdEaf0
>324
列挙型でも数字はありますもんね。
ようやく少し理解
0340デフォルトの名無しさん (ワッチョイ 05dc-uznD)
垢版 |
2023/10/02(月) 20:54:18.72ID:3brSOCVN0
>>338
いや、理解できてない
数字がある(=型に数値と互換性があるという意味と推察)かどうかは配列で扱ううえで全く関係ないよ

君が「数字がないもの」と思っているものの配列は理解できる?
例えば文字列配列を配列の長さ3で宣言できる?
0341デフォルトの名無しさん (ワッチョイ 05dc-uznD)
垢版 |
2023/10/02(月) 21:17:33.82ID:3brSOCVN0
>>338
なんで数字にこだわるのかわからなかったけど
> tileList = new TileType[ columns, rows ];
>の部分でtiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入しているあたりが分からないです

ひょっとしてcolumnsとrowsで二次元配列のサイズを指定してるのを
配列tileListにcolumnsとrowsの値を入れていると誤解してる?
0342デフォルトの名無しさん (ワンミングク MMa3-AwC8)
垢版 |
2023/10/02(月) 21:19:04.73ID:lujPkxOVM
荒らしの相手をするのは荒らし
0344デフォルトの名無しさん (ワッチョイ 23e5-VEJP)
垢版 |
2023/10/03(火) 08:07:13.74ID:Uvzxz0ni0
>>341
そうじゃなくて、配列宣言は定数値じゃないといけないと思ってるんでしょ
だから皆から他人のコードを読む以前、基礎がわかってない、先に本なり見て学べって散々言われてるんよ
0346デフォルトの名無しさん (ワッチョイ e3db-uznD)
垢版 |
2023/10/03(火) 10:16:03.76ID:Ovgwwfj90
>>344
それだと「整数値であるcolumnsとrowsを代入している」とは言わないだろう
tileList = new TileType[]{columns, rows};
みたいに初期値を入れてると誤認してるからこそだろう
そして「tiletype型には定数の文字列が入ると思っていました」というのは
tileList = new TileType[]{TileType.PLAYER, TileType.BLOCK};
のような書き方を指していると推察できる
0347デフォルトの名無しさん (ワッチョイ 23e5-VEJP)
垢版 |
2023/10/03(火) 11:03:15.13ID:Uvzxz0ni0
>>346
「定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入している」ね
要するに配列宣言には定数を使用すると思ってたのに整数型変数使ってるのなんで?ってことよ
0349デフォルトの名無しさん (ワッチョイ e3db-uznD)
垢版 |
2023/10/03(火) 11:29:47.91ID:Ovgwwfj90
>>347
「tiletype型には定数の文字列が入ると思っていましたが、整数値であるcolumnsとrowsを代入している」ね
columnsとrowsが配列のサイズを指定していることを理解していればそうは言わんでしょ
TileType型の配列の初期値に整数値が入るのなんで?ってことよ
0350デフォルトの名無しさん (ワッチョイ e3db-uznD)
垢版 |
2023/10/03(火) 11:40:39.38ID:Ovgwwfj90
>配列宣言は分かっているんですが、型が違いますよね
とか
>列挙型でも数字はありますもんね
って発言からもTileType型の配列には数値は入らないと思ってたけど入るんだと自分を納得させてるフシがある
0353デフォルトの名無しさん (ワッチョイ 23c6-wNmW)
垢版 |
2023/10/03(火) 17:03:23.96ID:L0v6ZlZp0
単に定数値という言葉の意味をわかってないだけでしょたぶんTyleType型の各値のことを言ってる
なんなら宣言という言葉の意味もわかってないし代入すらわかってない可能性もある
0354デフォルトの名無しさん (ワッチョイ 1b22-uQQ6)
垢版 |
2023/10/03(火) 17:33:35.58ID:1Tt4UNmg0
スレタイさ、見て発言してる?
0355デフォルトの名無しさん (ラクッペペ MMcb-0bz8)
垢版 |
2023/10/03(火) 17:52:34.34ID:CTojctYiM
再掲

配列の要素のデータ型が列挙型(の変数)というだけであって配列そのものが特殊なものという訳ではない

この倉庫番のコードではマップのデータをcsv形式のテキストで設定してtileListという名の配列に格納している
格納する際に配列の要素はcsv内の整数データからTileTypeで定義された列挙型の変数に変換される

https://i.imgur.com/iA3fRKM.png
0357デフォルトの名無しさん (ワッチョイ ae8d-OOOs)
垢版 |
2023/10/07(土) 18:26:09.89ID:kQU1DN1N0
interfaceのクラス変数としてintとかの変数持たせるのはstatic intにしても同じことって理解
でいいですか?
0359デフォルトの名無しさん (ワッチョイ ae8d-OOOs)
垢版 |
2023/10/07(土) 19:00:10.87ID:kQU1DN1N0
クラス変数は誤植ですねごめんなさい。interfaceの中に変数宣言できたことです。
0362デフォルトの名無しさん (ワッチョイ ae09-Ju92)
垢版 |
2023/10/07(土) 19:38:58.26ID:isyrDxYL0
C#でインターフェイスにフィールド(メンバ変数)を定義することはできないよ
なのでどういうのを想定しているのか回答者は全然分からない
用語を間違ってる可能性もあるからまずこういうコードというのを示してみたら
0369デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
垢版 |
2023/10/07(土) 20:11:20.39ID:Dbx341NqM
誤植ですねについてああだこうだ言うのが揚げ足取り
イエスかノーかで答えてくださいに知らないと答えたのについてああだこうだ言うのが揚げ足取り

全然どうでもいいことにいちいち突っかかってくるID:M9UZ8U5c0が悪い
0372デフォルトの名無しさん (ワッチョイ aea0-OOOs)
垢版 |
2023/10/07(土) 21:33:04.56ID:kQU1DN1N0
特に継承するわけでもないinterfaceの変数を使っていたので
staticでよくね?って思ったまでです。
0380デフォルトの名無しさん (ワッチョイ 6959-n+VP)
垢版 |
2023/10/08(日) 19:57:18.08ID:7GYxqXei0
(1)オブジェクト指向プログラミング A. クラスの定義 B. オブジェクトの生成 C. カプセル化 D. 継承 E. ポリモーフィズム

(2)関数型プログラミング A. 高階関数 B. クロージャ C. ラムダ関数 D. ジェネレータ E. デコレータ
0383デフォルトの名無しさん (ワッチョイ da79-4iaA)
垢版 |
2023/10/09(月) 00:47:00.57ID:N+sXw7NG0
Taskについて質問です。
階層構造データを再帰的に探索する処理を階層ごとにTask.Factory.StartNewで並列化させて作ってるのですが、
WinFormsのControl.Invokeのように、子タスク内から親タスクのコンテキスト上で実行させたい処理があります。
今は親タスクで作成したリストを追加するActionを子タスクに渡して、後で親タスクでリストから取り出して処理を行っていますが、
可能であればControl.Invokeのように、子タスクのコンテキストのタイミングで親タスクのコンテキストに明示的に移って実行したいと考えています。
これを実現する方法があれば教えてください。Invokeの仕組みを解説してるサイトもあったのですが、意図する方法は見つかりませんでした。
void parent_proc(Tree tree) {
var locker = new ReaderWriterLockSlim(); var datalist = new List<string>(); var tasklist = new List<Task>();
Action<string> adddata = (string d) => { //排他制御でデータをリストに追加
locker.EnterWriteLock(); datalist.Add(d); locker.ExitWriteLock(); };
foreach (var node in tree) {
if (node.child != null) {
var task = Task.Factory.StartNew(() => { child_proc(node.child, adddata); }, TaskCreationOptions.AttachedToParent);
tasklist.Add(task);
} else {
datalist.Add(node.data);
}
}
Task.WaitAll(tasklist.ToArray());
foreach (var data in datalist) { //今は親タスクのコンテキスト上で処理している
}
}

void child_proc(Tree tree, Action<string> adddata) {
foreach (var node in tree) {
if (node.child != null) {
Task.Factory.StartNew(() => { child_proc(node.child, datalist); }, TaskCreationOptions.AttachedToParent);
} else {
adddata(node.data); // このリスト追加処理を無くして、ここで親コンテキストに移って実行したい
}}}
0384デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
垢版 |
2023/10/09(月) 10:33:03.03ID:iALOF4I2M
分かってると思うけど親コンテキストには移れない
親に処理を委譲してるだけ
人間と同じ

それなら親が適切なタイミングでリストを見て実行する様に書き換えるだけだろ
当然waitもawaitも出来ない
脳内でじっくり何をやるか順をシミュレートして考え直すしかない
0385デフォルトの名無しさん (ワッチョイ da79-4iaA)
垢版 |
2023/10/09(月) 11:18:08.46ID:N+sXw7NG0
>>384
ありがとうございます。
よくよく考えるとControl.Invokeにはメッセージループがあるので、
ワーカスレッドから渡されたdelegateを同期的に実行するタイミングがある事に気付きました。
今回の場合Task.WaitAllにタイムアウトを入れて、子タスクのデータを泥臭くポーリングすることで意図する事ができました。

while (!Task.WaitAll(tasks, 50)) { check(); } // check内で子タスクデータを処理
check(); // 全子タスクが完了した後残りデータがあれば処理

ウィンドウが無いケースでもExecutionContextで強引に実現できそうな記事も見つかりましたが、
やろうとしてる事に対して複雑になりすぎるので今回はこれでいこうと思います。
0386デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/10(火) 06:13:55.38ID:Cej5/emK0
キャストとパースは同じものでしょうか?
キャストは型変換で、その手法の1つがパースというイメージです。
0388デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/10(火) 10:21:35.45ID:Cej5/emK0
キャストとParseメソッドの違いは、主に次の点です:

キャストは同じ型の変換に使用されます。つまり、基本的なデータ型間での変換(例: int から double への変換)に適しています。一方、Parseメソッドは、異なる型のデータを文字列から変換するために使用されます。

キャストは基本的に明示的な型変換です。つまり、変換先の型を明示的に指定する必要があります。例えば、(int)doubleValue というように変換先の型をカッコ内で指定します。一方、Parseメソッドは、変換元の文字列が適切な形式であることを確認し、それを適切な型に変換します。具体的な型指定は不要です。

理解
ありがと(*´ω`*)
0390デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/10(火) 18:19:35.44ID:Cej5/emK0
テキストファイルから読み込んだ数字というのは文字列なんですね
だからparseが必要ってことか
0391デフォルトの名無しさん (アウアウウー Sa39-OOOs)
垢版 |
2023/10/12(木) 11:00:16.99ID:u59ybXeVa
float32/64からint32/64にキャストするときって
小数点以下は勝手に切り捨てられるってことで良いのかな
オーバーフローしてたらどうするのかな
色々面倒だよね
「同じ型の変換」って言われると
int32<->int64
の間のキャスト観たいなのを想像する
これも問題無い訳じゃないけど
parseは文字列からの変換を普通に思い浮かべるが
jsonのparseとかみたいに構造まるごと変換のときも使うしな
0394デフォルトの名無しさん (ワッチョイ 615f-Hwqz)
垢版 |
2023/10/13(金) 01:32:05.01ID:/NTFMnAJ0
VisualC#を独習している者です。

教えてください。
GridViewコントロールに←→のような、カレント行を移動させるボタンって、ツールとして用意されていないのでしょうか?
コマンドボタンコントロールを並べて自作するしかないのでしょうか?
0398デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/13(金) 07:24:31.11ID:5yHLdduY0
プログラミングの基礎固めってどこまでやるもんでしょうか
成果物作ろうとしても基礎が出来ないと効率悪いですよね
0401デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/13(金) 13:08:28.58ID:5yHLdduY0
>>400
配列の使い方程度なら基礎ですよね?
ゲームなどの成果物はすぐにでも作りたいのですが、他人のコードを読めない問題に直面しまして、基礎からやり直しです。
0404デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/13(金) 14:09:32.71ID:5yHLdduY0
ただの誹謗中傷になってる場合は、出来るだけ見ないようにしてます
0406デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
垢版 |
2023/10/13(金) 14:17:45.01ID:5yHLdduY0
それは受け取り方にもよるんですよね
特に人格に対する中傷なんかは得るものがない割に、気が滅入ります
主観的にどう受け取るかという部分もありますし、誹謗中傷の定義は万人共通ではないかと
0407デフォルトの名無しさん (ラクッペペ MM0e-1G1b)
垢版 |
2023/10/13(金) 14:25:28.33ID:61zwOKk/M
配列の宣言、作成、初期化、参照

古典のC言語でもポインタが理解できなくてリタイヤする奴は沢山いた

C#ではとても書きやすくなっているが同じ機能があるということは同様に難しいということ
逃げるなら早い方が良い
0409デフォルトの名無しさん (ワッチョイ 6e83-AlWi)
垢版 |
2023/10/13(金) 14:56:06.30ID:U+TO1bu90
>>406
お前はもう来るなよ
消えろや
0410デフォルトの名無しさん (ワッチョイ b133-Ju92)
垢版 |
2023/10/13(金) 15:44:17.55ID:dO1Gm34h0
>>401
Unityでゲーム作るのが目的なんだろ?
だったら、作って覚える系の入門書をどれか一冊こなしてみればいいと思うよ
そうすれば何が不足しているのか、もう少し具体的に自覚できるようになるから
0412デフォルトの名無しさん (ワッチョイ 8542-AlWi)
垢版 |
2023/10/13(金) 19:01:36.48ID:aXuG2/tR0
入門書を読めというアドバイスには意地でも耳を傾けない初心者
0414デフォルトの名無しさん (ワッチョイ 0a76-lHjV)
垢版 |
2023/10/13(金) 21:10:42.40ID:zzxv1uCg0
他人のコードを読み解くのは自分でコードを書くよりも能力が要る
断片的なネット記事から基礎を学習するのも他言語でプログラミングに慣れてないとちょっと厳しい
まぁ、完全な初心者は定番の入門書を読めってことなんだけど、聞く気無いんだろうなぁ
0417デフォルトの名無しさん (ワッチョイ 5a36-byzf)
垢版 |
2023/10/13(金) 22:57:31.42ID:9b0YvF5R0
初心者には入門書「だけ」は無理だよ
環境設定とか、バージョンの組み合わせとかで動かないことが多い
その場合、初心者は解決できない
ググっても無駄だし
0418デフォルトの名無しさん (ワッチョイ da79-4iaA)
垢版 |
2023/10/13(金) 23:21:21.97ID:79LHTXDX0
俺はお前が判んなくても一向に困らないし相手してやってるのは自己満足の暇つぶしでしかねーんだよ有難く思えよ?ただし理解しようとしない馬鹿の常駐だけは勘弁
がこのスレ住人の大体の本音だろう。つまり馬鹿の相手をするな
0419デフォルトの名無しさん (ワッチョイ 7b5a-VGqS)
垢版 |
2023/10/14(土) 01:34:27.59ID:Z8feDlim0
他人のコードを読むと勉強になると言うのは嘘。
情弱は、それに引っ掛かる

正しくは、他人のコードを無限に時間を浪費して読むと、
ほんの少し分かると言うだけ。
それを10年やっても、半年ぐらいの初心者に勝てない

他人のコードを読むのは、自分で書くよりも、10倍以上難しいし、
さらに悪い事に、記憶の定着率も最悪。
だから、勉強にならない

初心者は、掌田津耶乃みたいな入門書で良い

特に、ひろゆき・ホリエモンみたいなプログラミングの素人に聞かない事。
彼らは、やった事ないでしょ?
0422419 (ワッチョイ 7b5a-VGqS)
垢版 |
2023/10/14(土) 02:44:05.87ID:Z8feDlim0
これで初心者が、Ruby on Rails を学んで転職していくのが分かるでしょ?

それ以外の言語が通用しない理由。
10年やっても、何も作れないから

大学でC をやった香具師の99%が、プログラミングはしょーもない。
何も作れないとやめていく。
Cの教師が職を失いたくないからやってるだけなのに、それにだまされているだけ

C# も同じ。初心者ができるわけない。
9割がモデラー。プログラマーなんて、ほぼいない

Rails以外で、初心者が転職できる事はない!
難しさの桁が違う

3D モデルを作って動かすんだよ。
クォータニオンとか、数学物理をやっていないと無理。
Python と同じ。文系なんて採用されないでしょ。
だから、文系のアホは皆、Railsへ行く

プログラマーはまず、Railsなどをやった後の話
0423デフォルトの名無しさん (ワッチョイ c941-efC7)
垢版 |
2023/10/14(土) 03:58:59.56ID:kxoihP4v0
C/C++も結局は環境依存の各種ライブラリを使わないと初心者では大したものは作れない
普通の授業だとファイル入出力までで終わりで
ディレクトリ操作のdirect.hなんて教えてくれる所は少ないからな
0426デフォルトの名無しさん (ワッチョイ 13e5-pCU2)
垢版 |
2023/10/14(土) 08:20:19.40ID:VmmeRCt60
言われた通りやってるだけでプログラミングに対する目的意識が無いから
入社後に作らせてみてもネットのコピペとかばっかで内容理解してないんだよな
そりゃあ何も作れるわけないわ

419とかそれ系の僻みじゃねぇの?w
0427デフォルトの名無しさん (ワッチョイ 7b93-f0fU)
垢版 |
2023/10/14(土) 11:18:53.62ID:eUQTPEKE0
小学校6年くらいの段階でC#でテトリス作れたら将来有望?
最近の子供はまじでプログラミングに関しては優秀なイメージ
C#分かってる小学生10人に1人くらいはいそう
0428デフォルトの名無しさん (ワッチョイ 7b93-f0fU)
垢版 |
2023/10/14(土) 11:23:19.49ID:eUQTPEKE0
同僚の子供がC#でテトリスを応用化したゲーム作っててまじで焦ってる
テトリスなんて入社研修で作るからようは12年も先取りしてるってこった
0429デフォルトの名無しさん (ワッチョイ 5901-Q3Hg)
垢版 |
2023/10/14(土) 12:03:13.89ID:JNPOXyOW0
子供が大人にプレゼンしてる番組あるじゃない
あれみたいに好きでやってると脳はバンバン吸収する
オレの脳は歴史や城の良さをプレゼンされても全然入ってこない
0430デフォルトの名無しさん (アウアウウー Sadd-f0fU)
垢版 |
2023/10/14(土) 12:06:37.52ID:x03gZ5vca
>>420
掌田津耶乃はNGワードに入れてる
0431デフォルトの名無しさん (アウアウウー Sadd-f0fU)
垢版 |
2023/10/14(土) 12:07:19.53ID:x03gZ5vca
あれ?アンカ間違った
>>421
掌田津耶乃はNGワードに入れてる
0432デフォルトの名無しさん (ワッチョイ 7b93-f0fU)
垢版 |
2023/10/14(土) 14:03:24.13ID:eUQTPEKE0
>>429
テトリスってことは難めの非同期とかも理解してるってことだよな
ブロックの回転とか難しそうだしマニアックな文法も理解してそうだ
人生余裕なんだろうな
0433デフォルトの名無しさん (ワッチョイ 315f-iZeJ)
垢版 |
2023/10/14(土) 14:48:41.51ID:XZPKtcR/0
入門がてら、はじめて自作のWindowsフォームソフト(ストップウォッチ)を作りました。
今後もC#の学習を続けてもっと技術を身につけたらこのソフトも機能追加して改善していくつもりです。

そこでお聞きしたいのですが、VisualC#において、バージョン番号の管理ってできないでしょうか?
現在は、何か手を加えるたびに、アップデート記録.csファイルに変更点をコメントで記述し、メインフォームに
あるラベルコントロールのテキストを「ver.1.00」から「ver.1.01」へ等と手で書き換えています。
なんとなくの想像ですが、「いまのバージョン番号」「前バージョンからの変更点」を記録しておく仕組みが
VisualStudioかVisualC#にはあるのではないかと思うのですがいかがでしょうか?
プロの人も私と同じように手作業でやってるとは思えないのですが。
0434デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
垢版 |
2023/10/14(土) 15:51:21.57ID:VHbVocpfM
プロの人は仕様書に書かれたのを手で更新してると思うw

ソースコード自体のバージョン管理はgit
変更はこれでさかのぼれる

その他にバージョンの番号の仕組みはあるにはあるけどバージョン管理とは言うもののそれは実際何なのかと言うことになる
そこの入り口を通ってないと仕組みを知ってもあまり活用できない

ドボンと言うサイトにも書いてあるけどじゃあ理解されるのか使われるのかと言うと疑問
個人では日付管理レベルぐらいじゃないかと
0435デフォルトの名無しさん (アウアウエー Sae3-J6+P)
垢版 |
2023/10/14(土) 16:03:02.60ID:zTCJ5Aqla
バージョン番号(ビルド番号)を自動設定したいなら、プロジェクトの設定でビルド時に実行できるコマンドを設定できるから
そこに「テキストファイルから数値読み込んでその数値をひとつずつ大きくして上書きする」コマンドラインツールを自作して設定しとけばいい
そしたらビルドするたびにそのツールが実行されて勝手にビルド番号が上がってく
ストップウォッチでは起動時のそのテキストファイルを読み込んで数値を表示するようにしときゃいい
0437デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
垢版 |
2023/10/14(土) 21:07:01.90ID:VHbVocpfM
>>427
マジレスするとテトリスはもう使い古されてて
数年前にはyoutubeで1時間でテトリス作ります見たいなのが溢れてた
それを追えば普通に同じものは出来る

それは確かcだったけどC#のも探せばあるだろう
どちらかと言うとそこがスタートラインかな
まともに完成品をコピー出来ることが重要

ライブコーディングが流行ってた時期はもう過ぎてるけどゲーム制作の需要はまだ続いてる
0439デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
垢版 |
2023/10/14(土) 21:20:50.18ID:VHbVocpfM
自分が大学に入った際に実習室の脇に置いてあったDOSマシーンに先輩の作ったテトリスが入ってた
それは普通のレベルだったけどコマが6角形になった奴も作ってた
誰かの作ったものを自力で作り直したらしいけど難しすぎて全然面白くなかった
完成度は以上に高かったが独自ルールが入っててそれが余計に邪魔だった

やれる人は一度進むとどこまでも自力で突き進める
他人に頼らない
0442デフォルトの名無しさん (アウアウエー Sae3-J6+P)
垢版 |
2023/10/14(土) 21:37:50.07ID:zTCJ5Aqla
使い古されたアイデアのテトリスだろうとできたならそれはすごい
さらにきちんと配布できる形式までもっていって他人がプレイしてるなら神だよ
妄想するだけで出きる気になってるだけの奴がほとんどだからな
0446デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
垢版 |
2023/10/14(土) 21:46:07.15ID:VHbVocpfM
テトリスの横幅を60マスぐらいにしたりなどアイデアはいろいろ出てくるはず
そこらへんがまずスタート+0.5ぐらい

自分らの世代は小学生のころからハンドアセンブルしてVRAMいじってたけどそういうのとは世界が違う
早ければ偉いと言うものでもないしマイペースでやればいい
0449デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
垢版 |
2023/10/14(土) 22:04:52.58ID:VHbVocpfM
ゲーム作るんならリアルタイム要素の少ないパズドラとかカードゲームとかみたいな今のソシャゲ的なものを作るほうが楽だし
面白味がある

それじゃなくてテトリス
何か答えは出てるだろ?
0455デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
垢版 |
2023/10/14(土) 23:12:54.96ID:VHbVocpfM
自分もそう思う
自分の作りたいものを作れる能力だけが必要なのでプログラムは非常にハードルが低い
配列すら使えなくても問題ないと言うか最近は旧来の配列をそのまま使ってる人は少ない
0456433 (ワッチョイ 315f-iZeJ)
垢版 |
2023/10/15(日) 00:06:47.24ID:lg0OQoNW0
>>434-436
ありがとうございました。
私の想像してるようなもの(バージョン登録フォームのような機能)はないのですね。
とりあえず今までのやり方を続け、上級者の方法を知ることができればそれをマネすることとします。
0459デフォルトの名無しさん (ワッチョイ 4eda-3VGZ)
垢版 |
2023/10/26(木) 11:39:53.77ID:hbOK49Zj0
class A : B { }

public Fuga( List<B> hogeList ) { }


List<A> hogeList = new();
Fuga( hogeList );
と呼び出そうとすると型が変換できないコンパイルエラーになるんですが、何故?
Fugaの中ではクラスBの値しか使わないです
0464デフォルトの名無しさん (ワッチョイ c18f-BTDU)
垢版 |
2023/10/27(金) 10:15:54.51ID:nBxrDXuS0
なぜ基底クラスの方を使う
基底クラスの操作は基底クラスに書きやがれ
0466デフォルトの名無しさん (ワッチョイ 1379-JwVi)
垢版 |
2023/10/28(土) 10:34:16.28ID:Wr7RJXLy0
OpenCVSharpを使い始めたんだが思いの他情報が少なくてつらいな
chatGPTを叱り付けながらpythonのコードから変換してる
コードが正しいんだか判らないからpythonてうんこ環境も結局入れる羽目になってる
うんこー
0467デフォルトの名無しさん (ワッチョイ 5101-LiJd)
垢版 |
2023/10/28(土) 11:04:10.33ID:LbOhwKX60
OpenCVSharpてのがラッパーとして定番なら使いやすくできてるのだろう
昔同様にopenCLラッパーを使ったが、良く出来てるなと思った(オレには作れん)
CPUとGPUに同じソース書けて、同時に全開で使うのは脳汁でたわ
0468デフォルトの名無しさん (ワッチョイ 1379-JwVi)
垢版 |
2023/10/28(土) 11:11:57.05ID:Wr7RJXLy0
pythnから置き換える中でしばらくこの行が何をしてるのか意味不明だったのだが
avg = gray.copy().astype("float")
C#ではこういうことらしい
avg = gray.Clone();
avg.ConvertTo(avg, MatType.CV_32F);
この辺りいくらぐぐっても全く出てこないのでC#でOpenCV始めようとする俺みたいな馬鹿は参考にするように
0470デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
垢版 |
2023/10/28(土) 11:32:14.34ID:5r3ES/EEM
OpenCVを語りたいならC++の方からアプローチして何を考えて作られたのか理解したほうがいい
pythonだと曖昧で魔法的に見えるだけ

Matも納得できるだろう
何が必要とされてそのようになったのか理解も進むと思う
そして二度と上のようなカキコはしなくなると思われる
0471デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
垢版 |
2023/10/28(土) 11:49:26.77ID:5r3ES/EEM
入門者にこんなことを言ってもい意味がないけど

高級言語でしか考えられなくなると
単純なメモリ構造やアセンブラレベルでの高速動作へのノウハウなどへの理解が低下する
何が要求されているかの思いが至らず狭い世界での物差しで全てを測ろうとしてしまう

それが絶対的に悪いと言うことではないがこれから世界を知ろうとするなら人間的に損だと思う
0475デフォルトの名無しさん (ワッチョイ 1379-JwVi)
垢版 |
2023/10/28(土) 12:23:05.53ID:Wr7RJXLy0
>>470-471
損得の観点が違うな
OpenCVでpython(以降うんこ)が使われてるのはOpenCV自体が十分速いからだな
でうんこ使ってるやつはOpenCVの中で何が起きてるかなんてどうでもいい
俺がC#でやり始めた理由はうんこを入れる必要が無くて孤立したうんこよりもWindowsではだいぶ楽できるなと踏んだからだ
まあ検証のために一時的にうんこ入れたけど慣れたらうんこなんて不要になると考えてる
ああ、C++には一切興味無いから本スレで存分に語りなよ
0487デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
垢版 |
2023/10/28(土) 19:57:30.47ID:5r3ES/EEM
> OpenCVSharpを使い始めたんだが思いの他情報が少なくてつらいな
> chatGPTを叱り付けながらpythonのコードから変換してる

このあたりから加齢臭がするから初心者でも知ったような口を利くジジイなんだろうなw
0498デフォルトの名無しさん (ワッチョイ 5374-OMHE)
垢版 |
2023/11/01(水) 08:02:21.06ID:c2Ch+IZA0
わたしも画像編集でPhotoShopに凝りだすと夢中になって本業を忘れる
0499デフォルトの名無しさん (ワッチョイ 197c-PbF9)
垢版 |
2023/11/01(水) 08:17:23.82ID:uY4c0qsQ0
>>497
こだわって時間掛けた物ほどユーザから邪魔とかもっとスッキリさせてと言われるんだよねw
0501デフォルトの名無しさん (ワッチョイ 1b10-5Bl4)
垢版 |
2023/11/01(水) 10:54:49.35ID:WpcHr6kk0
注文内容の9割が見た目だからデザインに凝るのは悪いことではない
ただしデザインセンスとプログラミングの技量は別物、両方持ってる人はごくわずか
例えば警告にColors.RedやMessageBoxを使っちゃう人は絶望的に足りてないので、素直にコンポーネント屋から買ってきた方がいい
0503デフォルトの名無しさん (ワッチョイ 1379-JwVi)
垢版 |
2023/11/01(水) 11:44:46.59ID:r0MV67Oa0
プログレスバーの話題って最近別のとこでも見た気がするな
長時間掛かる事が予測可能な処理で使う分には便利には違いないから
パーセンテージやタスク数で進捗視認できる手段は用意した方がいいだろうね
ナイトライダーは俺や客を怒らせるぐらいの効果しか期待できないから注意した方がいい
0508デフォルトの名無しさん (ワッチョイ 1379-JwVi)
垢版 |
2023/11/01(水) 14:56:29.53ID:r0MV67Oa0
俺が遊んでたソシャゲのアップデートはパーセンテージで小数点第二位まで出して糞でかいアップデートでもちびちび進んで判りやすかったから
多少速度を犠牲にしても1万ぐらいの解像度で進捗出てくれば良い感じに見えるんじゃねえかな
0512デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
垢版 |
2023/11/01(水) 21:11:50.04ID:e0PJZdQsM
話をもどそう
昔いくつか論文を読んだけど単純に活用できそうな例はあまりなかった

プログレスバーの進捗状況は時間とは限らないので
ファイル読み込みながら処理してる場合はファイルの読み込んだ位置で出してる(MSもこの方式なのかもなあ…)

データの内容で処理時間に偏りがある場合は時間と捉えてる人はイライラするんだろう
でも完全に予測不能だから仕方がない
0518デフォルトの名無しさん (ワッチョイ 8101-iMS1)
垢版 |
2023/11/01(水) 22:49:46.11ID:TVifX6FS0
ちょっと話ずれるけど、
画面からの登録処理を非同期にしてあるけどその間その画面で他に操作するような用途ない
とかありがち
頑張って進捗報告しても終わったその後は画面閉じるだけならあんまり意味ないよなぁ
0523デフォルトの名無しさん (アウアウウー Sad5-g+2W)
垢版 |
2023/11/02(木) 09:41:16.63ID:kxWwWLf8a
>>468
avg.ConvertTo(avg, MatType.CV_32F); ← これは OpenCV の関数だが
gray.copy().astype("float") ← これは OpenCV ではなく numpy の機能を利用してるはずで高速でもある
もちろんデータの中身は相互に使える前提でやってる
0525デフォルトの名無しさん (ワッチョイ 0b16-vgKx)
垢版 |
2023/11/02(木) 13:44:36.55ID:1Z+krstx0
c#でxamlの画面を作るときに
cs側の定数を埋め込みたい時ってどうしたらいいですか
例えば
static public class constdata{
public const string hoge_string="hoge.png";
}
と言う定数を作ったときに
xaml側で
<Image Source="hoge.png" />
のhoge.pngをconstdata.hoge_string にしたいとき

後ついでなのですが
定数にするときって
public const string hoge_string="hoge.png";
public static string hoge_string="hoge.png";
のどっちが正しいのでしょう
0527デフォルトの名無しさん (ワッチョイ 9b3e-ij9q)
垢版 |
2023/11/02(木) 17:28:53.15ID:qUNY/xJi0
staticプロパティは、そのクラスの名前空間をxmlns:hoge="..."で定義してるとして
<Image Source="{x:Static hoge:constdata.hoge_string}"/>
という風に参照できるが、フィールドとかconstとかはどうだったかな…。
0530デフォルトの名無しさん (ワッチョイ eb10-H9h+)
垢版 |
2023/11/02(木) 21:05:57.33ID:bF76OlLL0
「xaml static」でググるだけでも↓とか見つかるよ

https://learn.microsoft.com/ja-jp/dotnet/desktop/xaml-services/xstatic-markup-extension
https://shuhelohelo.hatenablog.com/entry/2019/11/29/001200
https://www.nuits.jp/entry/xaml-static-binding

(すまんがスラッシュは半角に変換してくれ……)
0533デフォルトの名無しさん (ワッチョイ 5374-OMHE)
垢版 |
2023/11/03(金) 15:44:06.59ID:olK1WazS0
constはコンパイル時解決
readonlytついてても変数は実行時解決

xamlは知らんが、dllとか作ると問題になるときがある
0534デフォルトの名無しさん (ワッチョイ 5374-OMHE)
垢版 |
2023/11/03(金) 15:44:31.98ID:olK1WazS0
大事なことなので3回言いました。
0535デフォルトの名無しさん (ワッチョイ 068b-/9BA)
垢版 |
2023/11/04(土) 16:36:18.05ID:zFKBPz8N0
排他制御のlock()の中って適当なobject型いれていいんですかね
この理屈がいまいち分かりません、おまじないみたいな認識でおkですか?
0543デフォルトの名無しさん (ワッチョイ dd5f-ZTan)
垢版 |
2023/11/07(火) 14:28:59.04ID:yst4YU0a0
ListboxでCtrl+C押すとCから始まる要素に選択が移るの無効化する方法はありますか?
というかCtrl+任意のアルファベットでそれから始まる要素を順番で選択していくよくわからない仕様
0546デフォルトの名無しさん (ワッチョイ dd5f-ZTan)
垢版 |
2023/11/07(火) 21:29:35.15ID:yst4YU0a0
ごめんなさい初心者スレで聞けみたいなのが合ったのでこっちにも質問しました
解決したんですけどもう一つ疑問があってビルドしたときに〇〇.exe.configってファイルができるんですけどこれに個人情報などは含まれたりしないですかね。
publicKeyTokenとか書いてあるんですけど他人に見られても問題ないようなものですか?
0548デフォルトの名無しさん (ワッチョイ 0697-/9BA)
垢版 |
2023/11/08(水) 21:55:40.45ID:wPZy88vc0
lockについての質問したやつです
おまじないでないことは漸く理解できました
次なんですが
lockによって排他制御されるものは変数だけですか?
ファイルへのアクセスも排他制御したいです
例えばスレッド2つ走らせてA.txtを同時に読み込もうとしたときに
どっちかのスレッドがリジェクトされたら成功ってな感じにしたいです
どうやって状況つくります?
0550デフォルトの名無しさん (ワッチョイ 4279-ztC3)
垢版 |
2023/11/08(水) 22:11:21.15ID:5o5qiXKK0
ほれ
using System;
using System.IO;
using System.Threading;

class Program {
static void ReadFile(string filename) {
int threadId = Thread.CurrentThread.ManagedThreadId;
Console.WriteLine($"Thread {threadId} is reading {filename}");
lock (filename) {
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) {
using (StreamReader reader = new StreamReader(fs)) {
string data = reader.ReadToEnd();
Console.WriteLine($"Thread {threadId} read: {data}");
}
}
}
}

static void Main() {
string filename = "A.txt";
Thread thread1 = new Thread(() => ReadFile(filename));
Thread thread2 = new Thread(() => ReadFile(filename));
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
}
}
0551デフォルトの名無しさん (ワッチョイ 0621-/9BA)
垢版 |
2023/11/08(水) 22:44:34.72ID:wPZy88vc0
>>550
うんん?どこに仕掛けがあるの
0553デフォルトの名無しさん (スップ Sd62-uaP8)
垢版 |
2023/11/09(木) 00:12:36.42ID:+ZNjn+w4d
聞く方も答える方も馬鹿
ファイルはそもそも排他機能があるだろ
0554デフォルトの名無しさん (ワッチョイ c2e5-wdyj)
垢版 |
2023/11/09(木) 08:04:59.33ID:oWEPbbig0
おまじないでは無いことが理解できたとしても、結局lockがどういう機能かは全然理解してない感じやな
ファイルアクセスを排他制御したいなら↓使っとけ
FileShare.None指定すれば完全排他だ

File.Open(string path, FileMode mode, FileAccess access FileShare share)

File.Openをnew FileStreamにしても一緒
0555デフォルトの名無しさん (アウアウウー Saa5-CWlg)
垢版 |
2023/11/09(木) 11:48:42.57ID:Fo7n9qIpa
reject されたら失敗やん?
0559デフォルトの名無しさん (ワッチョイ b156-dElW)
垢版 |
2023/11/09(木) 14:28:35.71ID:Qu68QkTK0
> 例えばスレッド2つ走らせてA.txtを同時に読み込もうとしたときに
額面通りに受け取れば「1つのプログラムの複数スレッドで同時に1つのファイルを読み込もうとしてる」
まあ本当に解決したい問題と書いてる内容が合ってるとは限らないけどね
0560デフォルトの名無しさん (ワッチョイ 6df0-q0f1)
垢版 |
2023/11/09(木) 14:43:43.38ID:b1R9Hs+L0
ファイル読む分には同時だろうが関係ないよな?
ライブラリがリエントラントになってればだけどw
0562デフォルトの名無しさん (ワッチョイ d2bd-/9BA)
垢版 |
2023/11/09(木) 18:51:49.12ID:3GBMooqu0
希望の通りに実装したら、同時に読み込もうとしたら後の方は先の読込み結果を返すになる。甘々に希望を読めば。
だけれども、同時でなくて後からもう一回呼んだ場合にはもう一度ファイルを読み込むんだよな。
>>561の通りに一度しか読み込みたくないのかもしれず、後から呼んだ場合には前の結果を
残しておいてそれを使うのがいいケースもあるが、それだとメモリを食い続けるという問題も
あるので、何をしたいか次第だ。
0567デフォルトの名無しさん (ワッチョイ 4d42-+qK8)
垢版 |
2023/11/09(木) 19:29:43.00ID:yc1G0XhC0
俺ならファイルを読み込むスレッドを一つにして、ひたすらqueueなどに積んで
処理用のたくさんのスレッドでそれを個別に読み込み処理なんて考えるな
ファイル読み込み部分を並列処理してもトラブルが出るだけでろくなことにならない
0571デフォルトの名無しさん (ワッチョイ 4601-4YU8)
垢版 |
2023/11/09(木) 21:25:44.13ID:Guim9pgh0
>>569
言い訳乙
0572548 (ワッチョイ ffda-XI6K)
垢版 |
2023/11/11(土) 09:48:46.02ID:MfZ2/qTS0
やりたいのは
計算結果をテキストに書くってのがやりたいです。

A,Bスレッドがそれぞれ計算します。

KeisanKekka.txt
↓↓
KeisanKEKKAA
KeisanKeKKAB

順番が逆になるってのはダメです。なのでファイル排他必要です。
0574デフォルトの名無しさん (ワッチョイ ffda-XI6K)
垢版 |
2023/11/11(土) 09:56:22.71ID:MfZ2/qTS0
>>573
書き込み順番

これはダメ

KeisanKeKKAB
KeisanKEKKAA
0577デフォルトの名無しさん (ワッチョイ 7ff5-1DlE)
垢版 |
2023/11/11(土) 10:49:32.88ID:RSKqgUUO0
順番ってスレッドが開始した早い方が先に書き込むのか?
それともどちらもが出した計算結果の昇順に書き込むのか?

もし後者なら書込みプロセスは1つにするだけ
前者なら計算終わるの待つだけ
0578デフォルトの名無しさん (ワッチョイ 9f42-/zbX)
垢版 |
2023/11/11(土) 11:21:39.38ID:vbI3i7Vz0
・ファイルの書き込み自体は並列化出来ない
・計算に比べてファイル書き込みが圧倒的に遅い
・ファイルの排他処理自体も少しではあるが時間がかかる
ってことなので、素直にシングルスレッドで処理した方がいい

どうしても並行処理をやってみたいのなら、ファイル書き込みと計算の2つのスレッドで並行処理をしてみるべきかな
そうするとファイルI/O街のタイミングで計算できるから物凄く微妙に速度が上がるかもしれない
0579デフォルトの名無しさん (ワッチョイ 7ff5-1DlE)
垢版 |
2023/11/11(土) 11:27:11.95ID:RSKqgUUO0
てか計算結果でソートするなら
処理分けてオペレーションで対応すりゃよくね?

無理やりプログラムでやるもんでもないでしょ
プログラムはなるべくシンプルがいいよ
0580デフォルトの名無しさん (ワッチョイ ffda-XI6K)
垢版 |
2023/11/11(土) 11:27:33.55ID:MfZ2/qTS0
>>576
テキストファイルの終わりに書きます。
追加するイメージです。
0581デフォルトの名無しさん (ワッチョイ 7f94-gzdM)
垢版 |
2023/11/11(土) 11:53:52.65ID:wxiCP7Qj0
>>580
排他制御だと先着順にしかならないけど
スレッドがA,Bの順番で計算が終わってファイルに書こうとする保証はあるの
それが保証されるなら、ファイルの排他機能を使うより、lockを使うのがシンプルで良いと思う
0582デフォルトの名無しさん (ワッチョイ ffda-XI6K)
垢版 |
2023/11/11(土) 12:18:07.23ID:MfZ2/qTS0
>>581
Aが書き終わったことが見てわかる変数を作っておくことで対応します。
0585デフォルトの名無しさん (ワッチョイ ffda-XI6K)
垢版 |
2023/11/11(土) 13:07:33.16ID:MfZ2/qTS0
伝え方が悪くてどうもすいませんでした
冷静に考えたら変数使えば排他制御いらないじゃんって思えてきた
何を聴講してんだか
0588デフォルトの名無しさん (スップ Sd1f-Zoup)
垢版 |
2023/11/11(土) 14:02:50.08ID:rffcSM1cd
スレッド起こした順に書込みも順にしたいの?
起こしたときに番号振ってファイルAにみな書込みするようにして
書き込む結果は振り番と結果書き込ませて
そのファイルAを監視して順番に書き出すスレッドなりで
目的のファイル作れば?
0590デフォルトの名無しさん (ワッチョイ ffda-XI6K)
垢版 |
2023/11/11(土) 16:05:06.98ID:MfZ2/qTS0
>>588
順番はAが書き込んでBが書き込む
Bが早く終わろうがAが書き込みした後しか書き込み無理ってことです。
もうひとつの厄介ありました。
Aが書き込み終わったよっていうフラグを立てる時間
Aが書き込んだ時間
にタイムラグある場合どうしよう。
もちろんAが書き込みする関数呼んだあとにフラグ立てるんだけど
フラグ立てたときってほんとに書き込み終了してる?って話です。
0592デフォルトの名無しさん (ワッチョイ ff7b-gzdM)
垢版 |
2023/11/11(土) 16:42:12.75ID:oxGqzPfa0
今後の質問者には先にChatGPTである程度やり取りしてもらって
それでもわかんなかった所だけ聞きに来てもらうほうが
お互い幸せになれる気がする
0593デフォルトの名無しさん (ワッチョイ ffbc-Zoup)
垢版 |
2023/11/11(土) 16:57:49.93ID:NvFe8ImE0
それ以前に、もう少し、こう、コミュニケーションというものを考えて、せめて一度くらいは推敲してから書き込んでもらえるとお互いに幸せかもね。

要件としてはこんなところなんだろうか。
・何らかの処理を行うためにスレッドを起動する。
・その処理(スレッド)は複数ある可能性がある。
・その処理の結果を一定の規則でファイルに出力する。

自分だったら、メインスレッド(処理用のスレッドを立ち上げる側)に処理スレッドの結果を返すようにして、処理スレッドがすべて終わった後にメインスレッドで規則に従ったファイル出力を行うように作るけど。
0594デフォルトの名無しさん (ワッチョイ 7fbd-XI6K)
垢版 |
2023/11/11(土) 17:08:03.68ID:B6ZfAYMe0
Win32APIで非同期書き込み

・CreateFile() FILE_SHARE_WRITE FILE_FLAG_OVERLAPPED
・AのWriteFile() OVERLAPPED構造体のOffsetとOffsetHighに指定する書き込み開始位置に、
 現在のファイルサイズを指定(後述するが0xFFFFFFFFでの追記は避けること)
・BのWriteFile() OVERLAPPED構造体のOffsetとOffsetHighにBで渡したファイルサイズ+Aで書き込むサイズ

WriteFile()は指定サイズ全てを1回で書き込めるとは限らないので、書き込んだサイズ分
OffsetとOffsetHighをずらしながら残りをWriteFile()する。
位置をずらして指定していくのとBの分を並列で書き込むので0xFFFFFFFFでの追記を行ってはならない。

書き込んだサイズは
・GetOverlappedResult()で調べる(呼ぶタイミングが分からない)
・WriteFileEx()でlpCompletionRoutineを指定する(完了ルーチンでWriteFileEx()を繰り返すとスタックが溢れる恐れあり)
・IOCP
・スレッドプールI/O
のいずれかを使う。

C#で同等のことを行う方法は知らん。
0596デフォルトの名無しさん (ワッチョイ ff02-FvvN)
垢版 |
2023/11/11(土) 17:11:14.77ID:6Uwmj7p80
古典的な方法は

書き込む前に「書き込み中だよ」というファイルを作って
おもむろに書き込んで終わったらファイルを消去する
他のプロセスは「書き込み中だよ」ファイルがないことを
確認してから「書き込み中だよ」ファイルを作る

あるいはDBに任せるかな
0598デフォルトの名無しさん (ワッチョイ ff01-bJ+2)
垢版 |
2023/11/11(土) 17:24:04.61ID:G8HZ7IiV0
>>590
static async Task Main(string[] args)
{
var taskA = Task.Run(()=> CalcA());
var taskB = Task.Run(()=> CalcB());
var resultA = await taskA;
await Save(resultA);
var resultB = await taskB;
await Save(resultB);
}

これを一般化してtaskをListに追加していって
Listを回して計算結果をawaitしながら直列で書き込めばいい
0599デフォルトの名無しさん (スップ Sd9f-Blpp)
垢版 |
2023/11/11(土) 18:15:19.76ID:GzLBx05/d
馬鹿は馬鹿だから設計も実装もできない
馬鹿の考え休むに似たりとはこのこと
こんな馬鹿はシングルスレッドにしとけよ
0600デフォルトの名無しさん (ワッチョイ ff8b-XI6K)
垢版 |
2023/11/11(土) 18:17:22.37ID:MfZ2/qTS0
>>596

>>おもむろに書き込んで終わったらファイルを消去する
書き込んで終わったことをどうやって判断するんですか?
0603デフォルトの名無しさん (ワッチョイ 7f79-l6lv)
垢版 |
2023/11/11(土) 18:58:24.74ID:JXC3KAMY0
>>596
その手順ではアトミック性が損なわれるから正常に機能しない
プロセスが最初にやるべきは盲目的に「書き込み中だよ」ファイルを作ろうとする事
ファイルを所有できたかはファイルの作成の成否で判定する…つまりこんな馬鹿なことは今すぐ辞めるべき
0604デフォルトの名無しさん (ワッチョイ 7fe5-Zoup)
垢版 |
2023/11/11(土) 19:32:29.94ID:QEeEkTCo0
それぞれのスレッドが各々でファイルを書かなきゃいけない理由がなんかあるんかな?
そうじゃないならそれぞれの計算結果を親スレッドが受け取って
親スレッドがまとめて書き込めばいいんじゃないかなぁ
0605デフォルトの名無しさん (アウアウウー Sae3-Xzxn)
垢版 |
2023/11/11(土) 19:33:39.57ID:2HJkyP1va
ファイルはだめだけど
ディレクトリ作成はok
0606デフォルトの名無しさん (ワッチョイ 1f94-IE43)
垢版 |
2023/11/11(土) 19:44:09.90ID:kflznpjK0
>>604
俺ならこれ
場合によってはスレッドの意味が薄くなるけど、設計としては明白になりやすそう

もしくは各スレッドの結果?の書込処理について統合して管理するクラスを作る
順序を定義しといてキューに溜めとく感じ
0609デフォルトの名無しさん (ワッチョイ 7f94-gzdM)
垢版 |
2023/11/11(土) 20:35:27.62ID:wxiCP7Qj0
>>607
ロックファイルを用いた排他制御の手法をちょっと間違えて覚えてるな
> 「書き込み中だよ」ファイルがないことを確認してから
って部分が無意味
確認後にファイルを生成するまでの間に他のプロセスがファイルを生成するかもしれない
0611デフォルトの名無しさん (ワッチョイ 7f31-vmna)
垢版 |
2023/11/11(土) 21:32:07.49ID:bCDMs/TZ0
>親スレッドがまとめて書き込めばいいんじゃないかなぁ
“まとめて”の意味合いにもよるけどAの書き込み処理はBの計算結果を待たずに開始できる点に留意する必要がある
0613デフォルトの名無しさん (ワッチョイ 7fe5-Zoup)
垢版 |
2023/11/11(土) 21:56:20.93ID:QEeEkTCo0
あと、待ってるのはあくまで親であって、AとBの計算はパラで進めてくれて一向にかまわん
話の内容からして、Aの結果をもとにBが計算するわけでも無いだろうし
0616デフォルトの名無しさん (ワッチョイ 7fcb-MsHe)
垢版 |
2023/11/12(日) 00:18:55.26ID:IOHJkfoT0
>>572がいち早く嗅ぎつけたように、質問者は真の目的に対して無自覚に不適切な実現手段を選定している(それ故に、不適切な実現手段における実装上の課題、つまり二次的な課題を相談するハメなってる)
C#での実装手続きを検討する前段に立ち戻ることをオススメする
0620デフォルトの名無しさん (ワッチョイ 9f42-/zbX)
垢版 |
2023/11/12(日) 09:30:41.24ID:qtbaU10h0
一番の問題は、処理時間の大半を占めるだろうファイルの書き込み自体が並立処理ができないし
オープン、書き込み、クローズ等の回数が増大して処理時間が遅くなることだな
もちろんスレッドの切り替えや排他制御や順序の制御など色々仕事が増えるし、この部分も並列処理できない

マルチスレッドの練習ならいいけど、実用ソフトの作成ならシングルスレッドで書いたほうが遥かに早いものができる
0621デフォルトの名無しさん (ワッチョイ ffbc-Zoup)
垢版 |
2023/11/12(日) 10:50:45.23ID:0qXKJ0sK0
もう完全にスレチになんだけど。

>>620 みたいな決めつけってどうなんだろう。
素人がわざわざスレッドなんて言い出してるんだから、質問者が説明できていないだけでスレッドが必要な背景があるのかもしれない、と考えてあげてもよさそう。

自分も質問スレ等を利用したことがあるけど、意図して説明を省略したところの説明を強要されたり決めつけられたりすると、う~んと思うこともあったからね。
まあきちんと説明できない側が悪いのだけど。

言い訳的には誰にでもきちんと理解させられるほど状況を整理できてるなら、質問スレに頼る必要はほぼないかもしれない、とか。
0624デフォルトの名無しさん (ワッチョイ 1f94-IE43)
垢版 |
2023/11/12(日) 11:17:52.90ID:1lLdbIkC0
そもそもでいうなら、順番を待たなきゃいけない設計を見直さんとね

決まった順番で同じファイルに書き込まなきゃ理由がわからんからね
中のファイルが構造的でなきゃいけない場合、単純に順番に書込むだけでそれが担保出来てるのか、とか
例えばよくあるデータ形式にしても、
CSVならあまり順番意識しないから追記ってのもあるだろうけど、jsonで追記とかまあ自分は聞かないし

目の前の要求が満たせていればいい、っていうのも分からなくはないが
そこら辺の前提がないと最善などわからんよね
0626594 (ワッチョイ 7fbd-XI6K)
垢版 |
2023/11/12(日) 11:24:38.62ID:O1mU2H+U0
>>620
>>594に書いたけど、ファイル書き込みの並列処理は可能だ。
面倒な上に書き込みサイズが小さいとすぐ終わるから並列処理するうまみがないが。
実用性を考えると根本的にやることを見直すべきなのは同意だ。
0631デフォルトの名無しさん (ワッチョイ ff01-vmna)
垢版 |
2023/11/12(日) 12:50:38.93ID:kSd1xzHw0
決まった順番で同じファイルに書き込みたい状況やファイル書き込みより計算処理の方が遥かに時間がかかる状況なんていくらでもあるでしょ

処理速度向上のために並列化した計算結果を直列化するのはmap/reduceと同じで並列処理の基本パターンだと思うが
その際にメモリ効率や後続処理の都合でファイルに書き出しながらreduce相当の集約処理をするのもよくあるやり方
0632デフォルトの名無しさん (ブーイモ MM4f-vmna)
垢版 |
2023/11/12(日) 12:57:53.27ID:eSav3yyhM
ついでに言うと真の目的を自覚してそれを他人に誤解なく伝えられるように言語化できる人間ってのはそうそういない
自分の言いたいことを相手に伝えようとする努力はもう少ししろよとは思うが真の目的を言語化すること初心者に求めるのは酷
0633デフォルトの名無しさん (ワッチョイ 7f68-gzdM)
垢版 |
2023/11/12(日) 12:57:57.10ID:92tzwC/W0
>>598で(細かい所は端折られてるが)質問者の要望を満たしたほぼ完璧な回答が出てるのに何の議論をしてるんだろうか

>>620
マルチスレッド何だから、オープンしたファイルクラスオブジェクトを共有すれば良いだけ
各スレッドでファイルのオープンとクローズをやる必要は無い
0634デフォルトの名無しさん (ワッチョイ 7fbd-XI6K)
垢版 |
2023/11/12(日) 13:02:14.64ID:O1mU2H+U0
>>628
壊れないよ。
追記でなく他のスレッドが書き込むサイズを把握して書き込み開始位置(現在のファイルサイズよりも先)
をちゃんと指定すれば大丈夫。
FILE_SHARE_WRITE指定だから複数スレッド同時に書き込めるし、
なんなら複数プロセスでも書き込める。
0640デフォルトの名無しさん (ワッチョイ 7f79-l6lv)
垢版 |
2023/11/13(月) 00:49:40.70ID:AJp6/mRY0
ファイルはシーケンシャルで書くのが一番効率が良い
順番に並べる必要があるなら後でソートできるようにレコードをきちんと設計しておけば問題は起こらない
上でされてるいくつあるかも判らないスレッドごとに開始位置をシークして…なんて主張は馬鹿の発想
0643デフォルトの名無しさん (ワッチョイ 7ff5-1DlE)
垢版 |
2023/11/13(月) 07:55:21.10ID:flxB0Vsk0
確かにハードの進化がソフトを凌駕するからなぁ
windowsも出た頃は二世代後くらいのハードを想定して作ったとか後付で言ってたかな、遅くて使い物にならなかったよな最初の頃は(笑)
0651デフォルトの名無しさん (ワッチョイ 9f7c-gFzT)
垢版 |
2023/11/14(火) 19:07:18.84ID:xujXPfzz0
新しい.net来るぞ
0658デフォルトの名無しさん (ワッチョイ 9f7c-gFzT)
垢版 |
2023/11/15(水) 11:41:16.01ID:S5z+rJ9T0
>>652
英語分からんってヤバくね
IT業界で1番必要なスキルだと思うが?
0660デフォルトの名無しさん (ワッチョイ 7f74-n7Dx)
垢版 |
2023/11/15(水) 12:41:13.13ID:D0hDoGTF0
>>658
Don't worry.
My English skills are much better than yours.
0661デフォルトの名無しさん (ワッチョイ 9f49-Lcu7)
垢版 |
2023/11/15(水) 13:16:29.77ID:cCd4X74c0
Waimo eigo tyoto Dekiruyo !!
0663デフォルトの名無しさん (ワッチョイ 7f4b-4qIk)
垢版 |
2023/11/15(水) 13:39:33.53ID:GITsN6v60
Windowsで.net5以上でshift-jis使うのに
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
この1行いるのは知ってます

System.Text.Encoding.CodePagesを参照する必要があると書いてあるところと
いらないしいると書いてあるのは間違いだと書いてあるところがあったので
どちらが正しいのでしょうか?
0665デフォルトの名無しさん (ワッチョイ 7f74-n7Dx)
垢版 |
2023/11/15(水) 14:05:48.88ID:D0hDoGTF0
>>662
Kono Hage!!

If you have no hair at all, shut up and get out of here.
0667デフォルトの名無しさん (ワッチョイ 1f25-Lcu7)
垢版 |
2023/11/15(水) 14:17:23.51ID:amYyW+se0
>>665
この辺にしとこうぜベイビー。
C#ラブな同士トゥギャザーで仲良くしようぜ。
0669デフォルトの名無しさん (ワッチョイ 9fae-Lcu7)
垢版 |
2023/11/16(木) 16:07:12.51ID:IwsAzKF60
Windowsに限らず、AndroidやiOSやLinuxなどほとんどのOSで、
ファイル名に使って想定外の動作をしない記号って、アンダーバー「_」くらいでしょうか?
アンダーバーでも誤動作するOSってあります?
0674デフォルトの名無しさん (ワッチョイ 1f01-ElWn)
垢版 |
2023/11/16(木) 21:16:19.40ID:ybAKbR/C0
SwiftLint使ってると、大文字や小文字で始まるか、キャメル式かスネーク式かいちいち文句付けてうざいぞぉw
0677デフォルトの名無しさん (スプッッ Sd7f-Xzxn)
垢版 |
2023/11/17(金) 11:28:27.47ID:180/RciHd
_で始まるファイル名だとコンパイル出来ない言語は観た覚えがある
0681デフォルトの名無しさん (ワッチョイ 1f08-IE43)
垢版 |
2023/11/17(金) 18:14:02.34ID:TreZcExv0
ボーダーラインを探すなんて無駄なことしてないで、
自分が対象にするOSで使える文字だけ使っときなよ、と思いました

暇ならとことん網羅して論文でも書いていてくれ
0686デフォルトの名無しさん (ワッチョイ 9f57-ElWn)
垢版 |
2023/11/17(金) 21:40:25.75ID:PqMW4vo50
あったとして、どうするんだ?
0688デフォルトの名無しさん (ワッチョイ 9f01-M2ys)
垢版 |
2023/11/17(金) 22:17:29.52ID:7wOEc1lI0
>>686
倉庫番の人だよ
0689デフォルトの名無しさん (ワッチョイ 9f57-ElWn)
垢版 |
2023/11/17(金) 22:23:01.37ID:PqMW4vo50
Pythonがそう書けるってさ
0692デフォルトの名無しさん (ワッチョイ e960-jFON)
垢版 |
2023/11/18(土) 18:37:11.62ID:mbkKOvAd0
関数の返り値を比較するときに2回書けないから一旦値で受ける、
なんて必要がなくなるから無いよりはある方がいいな。
0696デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 19:38:01.29ID:6FJDI0Q/0
task1〜3までをUIスレッドで開始して、それからは
task1→task2→task3→task1みたいに自分の処理が終われば
別taskに処理を移すみたいな感じのソースコードを作りたいです。
処理はすぐ終わる計算でいいです。どうしますか?
ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたいです。
0700デフォルトの名無しさん (ワッチョイ 8291-PfDU)
垢版 |
2023/11/24(金) 20:59:34.65ID:y2ZJO/eV0
そもそも、タスクとスレッドの関係をどういうもんだと思ってるんだか・・・・
0702デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 21:28:48.64ID:6FJDI0Q/0
>>698
ごめんなさい誤解ありました。

task1→処理1

task2→処理2

処理1と処理2とかは並列処理です

順繰りというのは難しいのではって感じです。
0703デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 21:33:36.46ID:6FJDI0Q/0
task1→処理1

task2→処理2

task3→処理3

task1→処理1の2回目

処理1の2回目がミソです

処理1の2回目と処理1も並列になっててほしいんです

ちょっぴり無茶なプロセスですかね?
0705デフォルトの名無しさん (ワッチョイ 0279-KWGQ)
垢版 |
2023/11/24(金) 21:45:07.71ID:pe/5i+Cu0
コルーチンのことかな
一定の処理まで終わらせたら明示的な命令によって他のタスクに切り替えて行くやり方
C#的にはIEnumerator<T>型を返すやつね
コルーチン自体はスレッドに依存しないので必ずしも複数スレッドで非同期処理をやるというわけでもなく
同期的に書けば排他制御が不要になる
0707デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 22:22:10.58ID:6FJDI0Q/0
>>704
特にやりたいことはないですよ
開始の時間printfしてみたら

処理1
処理2
処理3
処理1の2回目
処理2の2回目

ってなってればいいんですよ
0709デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 22:34:42.42ID:6FJDI0Q/0
>>708
特に作りたいものがないんですが思いついたのは
並列処理だと時間短くならね?ですね
0712デフォルトの名無しさん (ワッチョイ 298e-cVwZ)
垢版 |
2023/11/24(金) 22:56:14.00ID:A049oz9t0
また後出しのあいつか
0714デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 23:09:30.59ID:6FJDI0Q/0
task1〜3までをUIスレッドで開始して、それからは

ここ違いますね、UIスレッドで起動するのはtask1
task1を起動してからは上に書いたとおりです。

後だしではないんでそこは分かってほしい。
0716デフォルトの名無しさん (ワッチョイ a2c3-1Z4Z)
垢版 |
2023/11/24(金) 23:27:15.24ID:GWBHs7u/0
それだと処理が終わっでない
終わってから都賀のタスクなんだから

3人いる
長男が投げる、落ちるのを確認したら
次男が投げる、落ちるのを確認したら
三男がなげる、落ちたらサイクル終わり
また最初に戻る

じゃね?
0718デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 23:42:55.25ID:6FJDI0Q/0
>>716
伝わってませんね
落ちるのを確認ではなく投げるのを確認ですかね
長男が次男に投げたからお前も投げろよって声掛けする感じです
0721デフォルトの名無しさん (ワッチョイ bfe5-1fOb)
垢版 |
2023/11/25(土) 00:01:28.56ID:5JaI+Sbl0
>>719
書いて貰えると嬉しいです
Task1をもう一回呼ぶなんてできます?
1回目はUIスレッドから
2回目はTask3スレッドからです
0722デフォルトの名無しさん (ワッチョイ dfbd-1fOb)
垢版 |
2023/11/25(土) 00:03:58.41ID:6TmsaT3E0
>>719 の言う通り、順次Task.Run()すればキューに積まれて順に取り出されて
スレッドプールで実行されるんじゃね。
但し、>>707 で積んだ順番でprintfされることを期待しているようだが、
各Taskが並列実行されるので、Task開始順とprintfの順番が一致する保証はない。
0724デフォルトの名無しさん (ワッチョイ bfe5-1fOb)
垢版 |
2023/11/25(土) 00:19:31.02ID:5JaI+Sbl0
Taskの理解間違ってました
Taskってのは関数みたく何度も呼べるもんなんですね知らなかった
0729デフォルトの名無しさん (ワッチョイ 5f91-YR7l)
垢版 |
2023/11/25(土) 12:44:24.22ID:2HfGPNlX0
基礎の理解を大きく欠くメチャクチャな質問に対して、わからないのに答えるメチャクチャな回答者が大勢出てくる・・・・
知恵袋のことを笑えんな
0731デフォルトの名無しさん (ワッチョイ dfc6-AnfR)
垢版 |
2023/11/25(土) 13:11:43.69ID:Q+BtNXr10
スレッドとタスクとプロセスの違いをしっかり説明出来る奴は少ない
0735デフォルトの名無しさん (ワッチョイ bf2f-eApT)
垢版 |
2023/11/26(日) 03:09:57.86ID:TxNzhOp40
TASK1〜3をそれぞれキュー1〜3にどんどん入れていって、
そのキューから同期的にタスク1−3を取り出せばいんじゃね
つか
>ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたい
とかいう条件はなぜに必要なのか
その条件だとタスクではほぼ何もできないわけだが
0736デフォルトの名無しさん (ワッチョイ bf2f-eApT)
垢版 |
2023/11/26(日) 03:09:58.20ID:TxNzhOp40
TASK1〜3をそれぞれキュー1〜3にどんどん入れていって、
そのキューから同期的にタスク1−3を取り出せばいんじゃね
つか
>ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたい
とかいう条件はなぜに必要なのか
その条件だとタスクではほぼ何もできないわけだが
0738デフォルトの名無しさん (ワッチョイ 5f32-sw9y)
垢版 |
2023/11/26(日) 06:43:14.79ID:Yqv2nl500
すみません、単刀直入にお尋ねしたいのですが
配列の各要素に入れらた構造体、ないしはクラスがあるとして
その中でそいつらが「自分の現在の添字を確認する」方法ってありますか?
配列の何番目に入っているのかってのを確認したいです。

例えば、自分の現在の添え字を返す関数とかあると嬉しいのですが。
調べてみても、ある値を要素から探してその添字を求めるーみたいなのはあっても
ストレートに自分の今の添字を返すーとかは無いのです。
0741デフォルトの名無しさん (ワッチョイ 5f32-sw9y)
垢版 |
2023/11/26(日) 09:26:10.80ID:Yqv2nl500
>>739
なんで無いんでしょうかね。。需要ある気がしますが。。
調べたい場合簡単なコードで解決するからでしょうか?

配列に入ってる側から自分の添え字を調べる方法ってありますか?
0743デフォルトの名無しさん (ラクッペペ MM8f-t2v2)
垢版 |
2023/11/26(日) 09:41:54.74ID:sVRUNFWaM
あえて理由付けするなら、最近の言語では配列をコレクションとして考える傾向が強くインデックスを意識しないようになってきている
リストや連想配列ではインデックスは抽象化されているので直接操作するのを避けるようにするので需要が低い
実際for each文ではインデックスを意識しないだろ
0744デフォルトの名無しさん (スップ Sdff-aoBM)
垢版 |
2023/11/26(日) 10:18:36.32ID:t46bGHL+d
倉庫番君?
0745デフォルトの名無しさん (オイコラミネオ MM9b-GgRN)
垢版 |
2023/11/26(日) 10:20:36.87ID:aOnl3nzuM
>>741
ない理由は簡単だよ
主な理由は無駄だから

任意の要素は複数のコレクションに入れられるし一つのコレクションに複数入れることが出来るから
要素側で添え字を持つ場合にはそれを区別することになる
そしたら親クラスと添え字のペアは何で保存する?dictionary?独自の保存クラスのインスタンス?
要素数だけ保存インスタンス作るの?と言う話になる
0748デフォルトの名無しさん (ワッチョイ a701-qLBg)
垢版 |
2023/11/26(日) 10:34:56.71ID:Mj7uGAuQ0
倉庫番の人を相手にする人達
0752デフォルトの名無しさん (スップ Sdff-aoBM)
垢版 |
2023/11/26(日) 12:00:02.74ID:t46bGHL+d
9月から配列配列と言い続けているのに驚く
まだやってんのかよ
0757デフォルトの名無しさん (スップ Sdff-aoBM)
垢版 |
2023/11/26(日) 17:43:50.21ID:t46bGHL+d
自分でプログラムしてるならわかる
必要ならパラメータで渡す
そんなものいらんよ
0758デフォルトの名無しさん (ワッチョイ 4701-1fOb)
垢版 |
2023/11/26(日) 20:59:21.90ID:DSb557XU0
>>754
格闘家か
0766デフォルトの名無しさん (ワッチョイ 6733-dIgO)
垢版 |
2023/11/28(火) 08:36:24.26ID:5Cyhyx4r0
>>763
非同期・並列処理がテーマのC#の本ってあんまりないのよね
実際に読んだことあるのは↓の二つ

『C#によるマルチコアのための非同期/並列処理プログラミング』 山本康彦 技術評論社
ちょっと古いけど、backgroundworkerの時代からawait asyncまで一通り歴史的経緯含めて網羅されている

『C#によるWindowsシステムプログラミング』 北山 洋幸 カットシステム
システムプログラミングと題されているけれど、非同期・並列処理に紙面の多くが割かれている

で、今正しいタイトルをチェックするついでに見つけた
読んでないので内容はわからん。2番目のやつと同じ著者によるもの
『C# 非同期・並列プログラミング入門』 北山 洋幸 カットシステム
0779デフォルトの名無しさん (ワッチョイ dfe6-AnfR)
垢版 |
2023/11/30(木) 10:35:19.33ID:faN/LqhT0
単なる習慣だから、生まれてから電子書籍しか知らないなら何も困らない
0781デフォルトの名無しさん (ワッチョイ a749-stge)
垢版 |
2023/11/30(木) 11:21:02.38ID:XNXKu7/N0
別に有用性はなくなってないけどな
アウトプット先が増えてるだけで、高度に専門的な情報は書籍(電子含む)が強い
論文とかも電子になる時代だし、AI含め、色んな人のアウトプットを大多数が受け取れる便利な時代になったよ

紙は特定の存在が物理的に抱え込むためのものになりつつある
0783デフォルトの名無しさん (ワッチョイ 4701-uWCz)
垢版 |
2023/11/30(木) 12:54:08.28ID:AHaSUwRO0
質問です
C♯で中規模以上のプロジェクト開発してるときってやっぱり毎回ビルドには時間かかったりするのでしょうか?
PHPから乗り換えようか迷ってんだけどC♯はビルドとかめんどくさそうで悩んでます
0786デフォルトの名無しさん (ワッチョイ bf00-1fOb)
垢版 |
2023/11/30(木) 19:04:01.23ID:7TTksUWH0
バージョンは.NET 6です
0788デフォルトの名無しさん (ワッチョイ a7a7-Bco2)
垢版 |
2023/11/30(木) 19:44:16.86ID:jJtFC2b00
うる覚えだけどcsprojに<UseWindowsForms>true</UseWindowsForms>を追加したら良かった気がする
WPFプロジェクトなら<UseWPF>true</UseWPF>って項目があるはずだからその一つ下にでも追加してみるといい
0789デフォルトの名無しさん (ワッチョイ bf00-1fOb)
垢版 |
2023/11/30(木) 19:56:33.31ID:7TTksUWH0
>>788
ありがとうございます
そこらへんって本には載ってないんですかね
0790デフォルトの名無しさん (ワッチョイ dfe6-AnfR)
垢版 |
2023/11/30(木) 20:03:06.67ID:faN/LqhT0
>「うろ覚え」を「うる覚え」と言う人に会ったことがあるかもしれません。実は一部の地方では、話し言葉として「うる覚え」が慣用的に使用されています。
「うろ」の文字や音が似ていることから「うる」に変わったとされています。
ただし、ビジネスシーンや書き言葉では「うろ覚え」が正しいので、間違わないように気をつけましょう。
0794デフォルトの名無しさん (ワッチョイ dfe6-AnfR)
垢版 |
2023/11/30(木) 21:05:23.75ID:faN/LqhT0
「うろ」は「空」または「虚」または「洞」の読み方だから
「うる」じゃ意味が分からなくなるんだよね
0797デフォルトの名無しさん (ワッチョイ 7fce-1fOb)
垢版 |
2023/12/01(金) 13:52:35.60ID:pq7rhG040
完全な初心者なのですが、C#の変数宣言におけるvarって
パフォーマンス的なデメリットなどは存在しないのでしょうか?
読み辛さがなければ便利につかってよいものと考えていいですか?
0799デフォルトの名無しさん (ワッチョイ a7ae-1+JT)
垢版 |
2023/12/01(金) 14:03:49.94ID:0wDimeZp0
varは推論型なので内部でintやstringに変換してくれる
むしろ宣言時に初期化してなくて推論出来ないとエラーが出る

var a; // 初期化してないのでエラー
var b=null; // 何のnullかわからないのでエラー
var c=0; // int型なのでOK
var d=','; // char型なのでOK
0805デフォルトの名無しさん (ワッチョイ dfe6-AnfR)
垢版 |
2023/12/01(金) 17:32:54.38ID:NZuUNSBe0
どちらも似た様なもんだろw
0806デフォルトの名無しさん (ワッチョイ 4778-0ikQ)
垢版 |
2023/12/01(金) 17:38:45.74ID:NB+NfP/p0
型推論時は右辺を評価してその結果の型が変数の型になる
型を明記した場合は右辺を評価してその結果の型と明記した型が一致するかどうかをチェックしてる
varが使える状況か否かの確認に追加ステップが必要だったとしても差は出ないんじゃないかと思う
でも少し興味あるので誰かに大きいコードベースでベンチマークして貰いたいかも
0809デフォルトの名無しさん (ワッチョイ dfe6-AnfR)
垢版 |
2023/12/01(金) 21:24:13.90ID:NZuUNSBe0
コード生成は一度やれば済むんだから、その一度の時間差なんて厳密に測って意味あるの?
0811デフォルトの名無しさん (ワッチョイ dfe6-AnfR)
垢版 |
2023/12/01(金) 21:35:41.22ID:NZuUNSBe0
右辺の型なんかコンパイラは分かってるからねぇ
むしろ左辺の型と合ってるか比較する方が時間掛かってんじゃね?
知らんけど
0814デフォルトの名無しさん (ワッチョイ 5e23-zrcD)
垢版 |
2023/12/02(土) 13:18:43.89ID:3ChpQtq/0
使ってるお絵かきソフトのカスタマイズがしたいんですが
オープンソースじゃないお絵描きソフトのキャンバスに色を塗ったりするのって不可能なんですかね?
0817デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/02(土) 15:13:30.76ID:3ChpQtq/0
オープンソースじゃないと自動化やカスタマイズは難しいって結論でいいですかね?
0818デフォルトの名無しさん (ワッチョイ 5e11-UmkZ)
垢版 |
2023/12/02(土) 15:23:11.83ID:HayA9ddu0
自動化はオープンソースかどうかはあまり関係ないし
カスタマイズはオープンソースかどうかよりもカスタマイズできる機能が用意されてるかどうかの方が重要

なのでその結論はどちらかと言えば間違い
0819デフォルトの名無しさん (ワッチョイ 9165-w+dO)
垢版 |
2023/12/02(土) 15:50:54.90ID:O517Z4Pz0
カスタマイズは金出せばたいていのものは出来るぞ
0823デフォルトの名無しさん (ワッチョイ 5e1f-zrcD)
垢版 |
2023/12/03(日) 11:50:27.21ID:wHVkOda/0
>>818
ありがとうございます。公式でそんなのなかったんで諦めます。
0824デフォルトの名無しさん (ワッチョイ 7dad-OpN5)
垢版 |
2023/12/03(日) 12:07:42.81ID:X1j6LHWz0
珍しくやさしい
0825デフォルトの名無しさん (ワッチョイ a536-6R1a)
垢版 |
2023/12/06(水) 05:15:37.44ID:TkvZFS2b0
Cで作ったDLL関数の引数が構造体のポインタでrefで呼び出し出来ていたんだが、C#側のstruct文をclass文に変えたことでメンバ変数に正しく伝わらなくなって悩みました。
何故でしょうか?
0830デフォルトの名無しさん (ワッチョイ 65cb-Q9JY)
垢版 |
2023/12/06(水) 13:46:33.35ID:NPFUhgut0
初心者です。
.NET Standard 2.1を使用しています。
マルチスレッドの同時接続数の設定で、ServicePointManager.DefaultConnectionLimitの値をできる限り上げたいのですが、Int32.MaxValueを設定しても問題ないのでしょうか。
一般的にServicePointManager.DefaultConnectionLimitの値はどうやって決めるものなのでしょうか。
0831デフォルトの名無しさん (ワッチョイ 5e1b-6Gjo)
垢版 |
2023/12/06(水) 18:55:54.49ID:ODgvh3rC0
ライブラリが勝手にアプリ全体の制約値変えていいのか?というのはまあおいといて
HttpClientが使ってるHttpClientHandlerやSocketsHttpHandlerのMaxConnectionsPerServerもInt32.MaxValueだし別に設定するのは問題ないよ
実際の同時接続を増やしすぎたらサーバによっては蹴られるとか攻撃扱いされるとかあるかもしれんが一般化できるもんではないな
あと接続繰り返すうちにクライアント側もソケットを使い果たす可能性もあるぞ
0833デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 19:56:05.75ID:+EnqVXDC0
System.Windows.Forms.Timer
これで呼び出した関数の中で
テキストボックスとか操作できちゃう理由が知りたいです。
内部的にInvoke使ってるんですか?
0836デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 20:42:07.51ID:+EnqVXDC0
>>835
for(int i=0;i<100000000;i++)
{
textBox.Text="test";
}

UIスレッドにこうかいてもループ終わるまで何故かtestって文字でないですけど何故ですか?
でもSystem.Windows.Forms.Timerでこれ呼んだら速攻で"test"ってでると思うんですが
0837デフォルトの名無しさん (ワッチョイ 6561-Q9JY)
垢版 |
2023/12/06(水) 21:21:27.26ID:NPFUhgut0
>>831
Int32.MaxValueでも問題ないんですね。ご教授いただきありがとうございます。
ちなみに作っているのはライブラリではなくUnityアプリとサーバです。

今回HttpClientではなくHttpWebRequestを使用しています。
HttpClientだとソケットが枯渇しやすいという話はよく見ていますが、HttpWebRequestでもソケット枯渇は問題なのでしょうか。
タイムアウトした接続が解放されずにカウントされたままになる、という情報を見て、ServicePoint.ConnectionLeaseTimeoutを適当に一分とかに設定していますが、この設定だけだと問題が起きてしまうんでしょうか。
0840デフォルトの名無しさん (ワッチョイ 9140-JrwL)
垢版 |
2023/12/06(水) 21:58:33.69ID:bAVe0RWP0
つか、UIスレッドにループとか書くな知障
0842デフォルトの名無しさん (ワッチョイ 5e1b-6Gjo)
垢版 |
2023/12/06(水) 22:01:16.10ID:ODgvh3rC0
>>836
UIスレッドの名前通りUIの更新もそのスレッドでやってるから
スレッドがループで独占されてて画面を更新できない
> でもSystem.Windows.Forms.Timerでこれ呼んだら
「これ」ってforを含んだものじゃないよね?

>>837
Unityは詳しくないからコメントできないな
0843デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 22:04:36.80ID:+EnqVXDC0
>>841
勘違いかもしれないんでもう一辺試します
すいませんでした
0844デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 22:15:36.73ID:+EnqVXDC0
>>842
でもSystem.Windows.Forms.Timerって動いてる時に
中でループ大量に走ってても
フォーム動かせたりしちゃいますよね?
これってUIの更新ではないですかね。

Mainとかにループ書くとフォーム動かせないのに。
0845デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 22:16:58.97ID:+EnqVXDC0
実はループしてるときは動かせはするけど鈍くなってるんですかね。
0848デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 22:45:04.51ID:+EnqVXDC0
>>846
こうです
public void clock(object sender, EventArgs e) {
for(int i=0;i<100000000;i++)
{
textBox.Text="test";
}
}
0849デフォルトの名無しさん (ワッチョイ 5eb8-zrcD)
垢版 |
2023/12/06(水) 22:50:59.79ID:+EnqVXDC0
>>847
鈍くなってただけっぽい
0850デフォルトの名無しさん (スップ Sdea-ws2i)
垢版 |
2023/12/06(水) 23:40:36.62ID:2DYN/adQd
もしかして倉庫番君か?
0858デフォルトの名無しさん (スプッッ Sdea-4wu8)
垢版 |
2023/12/07(木) 09:27:54.62ID:1UPy/6u0d
メインスレッド止めてるのに描画されるとか、ちょっとしたホラーだな
見えざるスレッドがいるのか
メインスレッドと思ってたものが実は違ったとか
もしくは、自動的に実行位置がコロコロ変わってる可能性も
0860デフォルトの名無しさん (ワッチョイ 9140-JrwL)
垢版 |
2023/12/07(木) 09:53:06.28ID:fQltjmnX0
>>859
最適化されただけちゃうか?
0868デフォルトの名無しさん (スップ Sdc2-uC6W)
垢版 |
2024/01/06(土) 14:33:11.04ID:AYkaYTA3d
ageh
0869デフォルトの名無しさん (ワッチョイ ffe1-JApz)
垢版 |
2024/01/08(月) 11:55:48.31ID:6WLOFFsr0
c#でパソコンの使用時間をカウントできないですかね?
フリーソフトであるんですが何故か正しくカウントできてない。
僕的には起動時間が使用時間であってほしいんです。
増えてはいるんだけど例えば10時間つけっぱなしにして+10時間ってなってないんですね
0870デフォルトの名無しさん (ワッチョイ df01-9rua)
垢版 |
2024/01/08(月) 12:05:41.91ID:6CrO7J2H0
windowsの起動日時をc#で取得する方法
を、bing等のaiに聞いてみる
0871デフォルトの名無しさん (ワッチョイ ff7b-ipwt)
垢版 |
2024/01/08(月) 12:15:04.04ID:60lS1oIG0
リアルタイムでなくていいならEventLog.GetEventLogsと以下参考にして算出したら?
http://faq3.dospara.co.jp/faq/show/7275

> 僕的には起動時間が使用時間であってほしいんです。
> 増えてはいるんだけど例えば10時間つけっぱなしにして+10時間ってなってないんですね
ActivityWatchなら無操作時間もAFKとして記録してくれたような…
0875デフォルトの名無しさん (ワッチョイ 7fe5-mfjK)
垢版 |
2024/01/08(月) 12:44:53.54ID:GgkACOkl0
1日内だの数日だのならこれで十分
32bit値によるミリ秒カウントだから49日ちょいで一回りしてしまうから
それ以上の日数で調べたいならDllImportしてGetTickCount64使う
0877デフォルトの名無しさん (ワッチョイ ffe1-JApz)
垢版 |
2024/01/08(月) 13:09:27.15ID:6WLOFFsr0
みなさん有難うございます。
>>874
それ全部合計できます?
>>876
累計調べたいですが出来ますかね?
0879デフォルトの名無しさん (ワッチョイ ffe1-JApz)
垢版 |
2024/01/08(月) 13:37:16.51ID:6WLOFFsr0
>>878
有難うございます。とりあえずそれで1年間の起動時間調べてみます。
0886デフォルトの名無しさん (ワッチョイ 5fe0-JApz)
垢版 |
2024/01/08(月) 17:14:34.76ID:DQpaADHn0
メソッドのアクセス修飾子は、internal と public どっちがいいんでしょうか?

仕事で見るソースコードはほぼ全て (internal・public のどちらでもいい箇所は) public ですし、
自分で書く時も public ばっかり使っています。

他のアセンブリから参照されないメソッドは積極的に internal にするべきでしょうか?
0888デフォルトの名無しさん (ワッチョイ 5f8e-9rua)
垢版 |
2024/01/08(月) 17:53:55.46ID:Rp8wcscb0
モノクロディスプレイじゃなければ
0891デフォルトの名無しさん (ワッチョイ df01-9rua)
垢版 |
2024/01/08(月) 18:47:08.96ID:6CrO7J2H0
顧客にwinサバ納品の条件に、赤いのは対処して無くしておくこと、というのがあってすごく面倒だった思ひ出
無視すりゃエエやんて愚痴りまくったわ
0896デフォルトの名無しさん (ワッチョイ df01-9rua)
垢版 |
2024/01/09(火) 01:27:31.91ID:kKdORG5L0
>>895
必須ではない
一覧にあるエラー分は無視で構いません
でokなとこもある
0897デフォルトの名無しさん (ワッチョイ ff47-JApz)
垢版 |
2024/01/10(水) 18:42:27.41ID:rO8r+DU/0
他のパソコンの起動時間をリアルタイムでTCPIP通信で受け取りたいんですが
https://dobon.net/vb/dotnet/internet/tcpclientserver.html
上URLのクライアントのコードにおいて
↓これはサーバーに向けての送信だからわかるんです。
ns.Write(sendBytes, 0, sendBytes.Length);
でもループの中の
↓これが分かりません。
ms.Write(resBytes, 0, resSize); 
msっていう変数にWriteする必要性って何ですか?

コメントだと //受信したデータを蓄積する
って書いてて今一そうしてる意味が分かりません。
0898デフォルトの名無しさん (ワッチョイ ff7b-ipwt)
垢版 |
2024/01/10(水) 19:13:08.65ID:wiBCpBDR0
>>897
そのページに記載のサーバーとクライアントの仕様をちゃんと呼んだ上で
実際にサンプルプログラム動かして確認してたらその質問は出ないと思うんだが試したのか?

それはそうとDOBONはもう更新するつもり無いなら注意書きつけてほしいわ
サンプルコードが古すぎて害にしかなってない
0899デフォルトの名無しさん (ワッチョイ 5fff-NF1f)
垢版 |
2024/01/10(水) 19:14:10.09ID:xhKI3zeu0
>>897
MemoryStreamって書いてあんだろ
メモリーに流し込むクラスだろうね
0903デフォルトの名無しさん (ワッチョイ ffd4-JApz)
垢版 |
2024/01/11(木) 19:36:49.57ID:CdeueIId0
>>898
良く見るとTCPIPとは関係無いコードでしたね。
データを保存してるっぽいですね。ありがとうございます。
0905デフォルトの名無しさん (ワッチョイ bfed-EFyZ)
垢版 |
2024/01/23(火) 20:11:36.23ID:AWqpAujf0
タブページの中に別のフォームを埋め込むって出来ますか?
変数ってフォームごとに所有権があって変数名が被る心配がないじゃないですか。
実際複数のタブにわたってテキストボックスとか置くと頭に付ける文字の区別とかがしんどいです。
これ何とかなりますか?
0909デフォルトの名無しさん (ワッチョイ bfed-EFyZ)
垢版 |
2024/01/23(火) 21:45:42.88ID:AWqpAujf0
>>907
おおやりたいことが無事実現しましたw
同じ名前でも全然競合しないし最高ですねこの機能
0914デフォルトの名無しさん (ワッチョイ 8701-32L+)
垢版 |
2024/01/24(水) 14:11:00.83ID:lOva81w60
アンカーやドックなどがあるから、もうVB6は無いな
0917デフォルトの名無しさん (オイコラミネオ MM1f-TBl5)
垢版 |
2024/01/25(木) 11:19:28.66ID:39FMXzwMM
public static string[] GetFiles (string path, string searchPattern);

searchPattern
String
path 内のファイル名と対応させる検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。

これなんですが*.jpgと*.pngを返すにはどうしたらいいですか?
0924デフォルトの名無しさん (ワッチョイ 5fe2-/d4v)
垢版 |
2024/01/26(金) 13:12:48.82ID:AOloEcvR0
ASP.Net Coreって、いつになったらPasskeyに対応するの?
0925デフォルトの名無しさん (ワッチョイ 35e9-C32G)
垢版 |
2024/01/28(日) 13:38:31.37ID:W2P22Djg0
VisualStudioのC#で開発して配布した過去バージョンのexeに何かしら問題が起きてソースを追ってデバッグする必要が出てきた時、
必要なのはそのexe本体とそのバージョンのpdbファイルだけでいいですか?
デバッグにはそのバージョンのソースコードもやっぱり必要?

また、配布したexeのpdbファイルはバージョン毎に残しておいたほうがいいという話を聞いたのですが
それはそのバージョンでビルドし直さなくてもよくなるからという認識で合ってますか?
気軽にバージョンを戻して再ビルド出来る環境がある場合、pdbファイルは残しておかなくても問題ないという認識で合ってますか?
0930デフォルトの名無しさん (ワッチョイ f1a6-+np5)
垢版 |
2024/01/28(日) 15:11:21.96ID:+LjN+GoR0
VBNetからC#の移行ってハードルは高いですか?
元々趣味レベルでVB6やってた流れでVBnetに移行してしまったけど、
C#の方が参考文献も多いし簡単に移行出来るのなら、そうしたい
0932デフォルトの名無しさん (ワッチョイ a67b-7cac)
垢版 |
2024/01/28(日) 17:12:06.60ID:ohe9LYAg0
C#→VB.netだと辛いだろうけど逆なら楽だろうね
コンバータもあるみたい
https://github.com/icsharpcode/CodeConverter
0934デフォルトの名無しさん (ワッチョイ 3abd-IHfd)
垢版 |
2024/01/28(日) 17:24:12.17ID:Y9bW3h9B0
昔趣味でVB.NETで書いたけど、何年か前にSharpDesktopの変換機能を使ってVB.NETからC#にして、
その後はC#で書いている。

VB.NETは今後機能強化は見込めない。

Visual Basic 言語の戦略 - Visual Basic | Microsoft Learn
https://learn.microsoft.com/ja-jp/dotnet/visual-basic/getting-started/strategy
>Microsoft は、アナライザー、コード修正、IDE 生産性機能の提供など、
>Visual Basic 開発者向けの Visual Studio のエクスペリエンスを引き続き向上させます。

>Microsoft は、VB でサポートされている既存のシナリオを今後も重視し、
>Web フロントエンドやクロスプラットフォーム UI フレームワークなどの
>新しいワークロードのサポートを追加する予定はありません
0937デフォルトの名無しさん (ワッチョイ 5e31-IHfd)
垢版 |
2024/01/28(日) 20:44:42.49ID:OcG9H8Hh0
c++のスレッドいつの間にか無いんでここで聞きます。
簡単なデスクトップのアプリケーション作る時に
今時winfomじゃなしにmfcを使うメリットはありますか?
有る程度コンポーネント揃ってるし何より格好がいいとは思いますが。
0939デフォルトの名無しさん (ワッチョイ 5e31-IHfd)
垢版 |
2024/01/28(日) 21:07:30.55ID:OcG9H8Hh0
>>938
mfc難しくて未だに簡単なのも作れてません
動作の軽さはどっちがいいですか?経験してたらここが早くていいとか教えて欲しいです
0941デフォルトの名無しさん (ワッチョイ 9ebc-5eDQ)
垢版 |
2024/01/28(日) 23:15:24.43ID:n6gmplWg0
フォームアプリを作るのに速度も何もないだろうと思うんだけど。
昔やってたけどもう覚えてないなぁ。

いまから基礎からやるなら C# とかの方がいいんじゃないの。
真面目に C++ でお勉強するなら Windows がどういうものかわかるから、長期的にはそれが利点かも。
0946デフォルトの名無しさん (ワッチョイ 5e31-IHfd)
垢版 |
2024/01/29(月) 21:27:58.33ID:tLNPdO/l0
>>941
基礎からというか業務で使ってるんですよね。
今のところ大丈夫かって簡単なんですよwinform
windowsの操作何でも出来るし細かいイベント何でもあるし
てか肌感覚としてUI作るのに苦労しないんならどんなアプリも作れるんじゃねと思います。
ただc#も極めると難しいとかいう意見もあってそれは何?ってイライラします。
c#やってて何か難しさを感じれる壁みたいなのありませんか?
このままだと難しい未知の何かを知らずに年とっていきそう。
0947デフォルトの名無しさん (ワッチョイ 5e31-IHfd)
垢版 |
2024/01/29(月) 21:32:28.66ID:tLNPdO/l0
>>943
覚えることが多過ぎ=c#にはない豊富な機能
ってことではない?
0951デフォルトの名無しさん (ワッチョイ 5e10-IHfd)
垢版 |
2024/01/29(月) 22:56:22.74ID:tLNPdO/l0
>>949
教えてくれてありがとうございます。mfcはもう勉強やめようと思います。
調べたんですがc#の発展的なのってweb系の言語と組み合わせて使うとかですね。
デスクトップなアプリは誰もできるからスキルの差が無いって感じがしました。
0952デフォルトの名無しさん (ワッチョイ 8a0e-/c6K)
垢版 |
2024/01/29(月) 22:57:43.03ID:XK8D3ICG0
極めると難しい?

難しいってさ人によるからその人には難しくてもあんたには簡単なんだよな一応業務経験作ってるんだろ?

野良野球の人が大谷の玉みて、あれは打てね~よ、難しいぞ

メジャーの人の意見は難しいが打てるやろ

そういうことや
0954デフォルトの名無しさん (ワッチョイ ed55-on+i)
垢版 |
2024/01/29(月) 23:25:51.44ID:IF0u5KrJ0
>>951
何をどうしたってC++の方が難しいよw
むしろC#やったらめちゃくちゃ簡単に感じると思う
0955デフォルトの名無しさん (ワッチョイ 9aae-NbCu)
垢版 |
2024/01/30(火) 00:07:30.40ID:0lvJS1Vs0
C++ のフレームワーク・MFC は使い道がない。
C# は、Unity があるけど

普通は、Ruby on Rails から始める。
筑波大学も使っている、Railsチュートリアルのサイトで、
古いバージョンなら無料で読める

重要な技術は、
Rails, WSL2, Linux, Docker, AWS Solution Architect,
React, TypeScript
0957デフォルトの名無しさん (ワッチョイ 5eeb-IHfd)
垢版 |
2024/01/30(火) 23:14:46.00ID:t2Ii9S7T0
>>956
ガチ描画とは何ですか?
それを聞くとc#のdraw系機能と何が違うのか気になります。
0958デフォルトの名無しさん (スッップ Sd0a-0pS/)
垢版 |
2024/01/30(火) 23:17:50.38ID:dMZwz/v3d
こいつもしかして倉庫番のあいつ?
0967デフォルトの名無しさん (ワッチョイ 6a8d-vRSL)
垢版 |
2024/02/01(木) 13:07:35.05ID:wp2DoW250
すまんが、これってなんでHello Worldって出ないの?
https://dotnetfiddle.net/QI2CZg
0970デフォルトの名無しさん (ワッチョイ 6aa9-vRSL)
垢版 |
2024/02/01(木) 15:00:02.00ID:wp2DoW250
>>968
ありがとう!Runしてなかった・・・・
0971デフォルトの名無しさん (ワッチョイ 1ef0-icwS)
垢版 |
2024/02/03(土) 18:43:16.33ID:XKE0QK/20
C#を職場のその場しのぎの知識だけでなく、きちんと学習したい場合はどうすればよい?
0977デフォルトの名無しさん (ワッチョイ 1ed7-3veX)
垢版 |
2024/02/03(土) 23:02:59.18ID:6Ccw2JLe0
>>974
AOTコンパイル
0978デフォルトの名無しさん (オイコラミネオ MMb5-5eDQ)
垢版 |
2024/02/03(土) 23:22:24.05ID:SdoQAO3QM
>>974
C#から中間言語に変換してexeファイルが作られる
それを実行時にコンパイルしてる
だから初回は起動に微妙な間が生まれることがあるのは仕方がない

AOTコンパイルとあるけど実際は今のところ様子見だろうか?
0988デフォルトの名無しさん (ワッチョイ bf63-KLri)
垢版 |
2024/02/10(土) 21:43:44.88ID:3TPS9nOf0
winapiをよくない使い方してwindows上で動きがおかしくなる事が
あるのですが結構危ないプログラム書いてるって認識でいいですか?
例えばクリック押下をプログラム的にさせて放すってのをセットでやたらずにいたら
バグりました。再起動したら治るんですがよくないですか?
0990デフォルトの名無しさん (ワッチョイ bf63-KLri)
垢版 |
2024/02/10(土) 21:51:40.97ID:3TPS9nOf0
クリックだけじゃないんですが
こういうのやっちゃダメですよね?
何かボタンを押下をプログラム的に実行したは良いが
そのボタンを放すをプログラム的にやらない
で症状なんですが
マウスホイールコロコロしても拡大縮小になってしまうとかです。
何やってもそうなります。
0993デフォルトの名無しさん (ワッチョイ bf63-KLri)
垢版 |
2024/02/10(土) 22:14:02.76ID:3TPS9nOf0
>>991
SendInput知らないですか?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 189日 14時間 47分 5秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。

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