ふらっと C#,C♯,C#(初心者用) Part156at TECH
ふらっと C#,C♯,C#(初心者用) Part156 - 暇つぶし2ch657:デフォルトの名無しさん
22/11/05 18:22:12.07 anrNho5cM.net
>>648
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう

658:デフォルトの名無しさん
22/11/05 18:26:36.41 pQZkgeTuM.net
オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケ


659:ージ図



660:デフォルトの名無しさん (ワッチョイ 9279-YsF2)
22/11/05 18:43:24.92 D4NMIenB0.net
アクティビティ図書くなら
フローチャートのがわかりやすいな

661:デフォルトの名無しさん
22/11/05 20:41:38.38 SeMW4Qkf0.net



662:VSがある程度自動的にクラス関係図生成してくれねぇかなあ



663:デフォルトの名無しさん
22/11/05 20:58:35.47 zg6rbg9v0.net
クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ

664:デフォルトの名無しさん
22/11/05 21:29:39.32 6Vg185nZ0.net
>>653
あれってCore系未対応じゃなかったっけ?

665:デフォルトの名無しさん
22/11/05 21:50:02.83 mwXpY34pM.net
>>649
HowだけでなくWhatもコードで表現しようとするのと宣言的プログラミングはちと違うんだが
いずれにしても重要なのは「仕様のWhat」を「コードのWhat」として対応付けること

666:デフォルトの名無しさん
22/11/05 22:06:58.20 neflR3f7M.net
>>652
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある

667:デフォルトの名無しさん
22/11/05 22:57:43.05 x8IGYLJlM.net
Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
URLリンク(i.imgur.com)

668:デフォルトの名無しさん
22/11/05 23:01:20.64 mbE+OsReM.net
>>655
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する

669:デフォルトの名無しさん
22/11/06 00:37:13.40 zZNJQBYc0.net
>>656
使用環境条件が厳しい
コード マップを使用して依存関係をマップする
URLリンク(learn.microsoft.com)
>コード マップの作成および編集には、Visual Studio Enterprise エディションが必要です。
>ただし、Visual Studio Community および Professional エディションでは、Enterprise エディションで
>生成されたダイアグラムを開くことはできますが、編集することはできません。

670:.NET MAUI HighScool
22/11/06 00:58:03.81 Am1kuzif0.net
.NET 7についての前情報得てるやついる?
どんな感じなんだろ?

671:デフォルトの名無しさん
22/11/06 02:59:28.10 3Vlqt+cVa.net
質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。

672:デフォルトの名無しさん
22/11/06 07:14:57.83 t/MPMTDqM.net
構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話

673:デフォルトの名無しさん
22/11/06 07:30:46.83 mzFwuoQr0.net
>>661
> 構造体を使っていて関数内でnew
よくわからんからコードで示して

674:デフォルトの名無しさん (ブーイモ MMad-yfbC)
22/11/06 09:30:46.32 OgJKt7GdM.net
>>661の理解で正しいよ。>>662は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。

675:デフォルトの名無しさん (ブーイモ MMad-yfbC)
22/11/06 09:45:40.42 OgJKt7GdM.net
ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。

676:デフォルトの名無しさん
22/11/06 09:52:21.19 mzFwuoQr0.net
>>664
newしてても?

677:デフォルトの名無しさん
22/11/06 09:54:44.02 zZNJQBYc0.net
値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?

678:デフォルトの名無しさん
22/11/06 09:57:00.84 OgJKt7GdM.net
>>666
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない

679:デフォルトの名無しさん
22/11/06 10:00:33.74 OgJKt7GdM.net
>>667
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される

680:デフォルトの名無しさん
22/11/06 10:06:01.01 sZiKsnj+0.net
ポインタがオマケでつくかつかないかだけなのか

681:デフォルトの名無しさん
22/11/06 11:39:39.10 8lzCZdko0.net
なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。

682:デフォルトの名無しさん
22/11/06 12:23:04.83 eRXytuty0.net
>>662のしったか具合がやばい

683:デフォルトの名無しさん
22/11/06 12:28:55.33 46oDEsAIa.net
このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ

684:デフォルトの名無しさん
22/11/06 13:25:57.55 zZNJQBYc0.net
intの構造体はC/C++で言うところの自己参照構造体を強引に組み込み型として実現してるっぽい
URLリンク(qiita.com)

685:デフォルトの名無しさん
22/11/06 13:54:54.11 FxP86aLpM.net
>>674
この記事では、そもそもなぜ再帰的な定義になっていて、それがどのように機能するかの説明にはなっていないような
C#のintやInt32型の変数は、実際にはどちらもILのプリミティブ型であるint32型にコンパイルされるんだよ
つまりInt32をint32型のフィールド一つだけを持つ構造体として定義してやれば、Int32とint32のメモリ上のレイアウトが同一になる
あとはコンパイラの型チェックを細工して、それらを区別しないようにしてやればよいというわけ

686:デフォルトの名無しさん
22/11/06 14:38:11.76 mupUNnkwa.net
>>664
680です!有難う、スッキリしました!

687:デフォルトの名無しさん
22/11/10 02:43:44.58 nQDHqGzi0.net
TwitterのAPIからツイートを取得し、それを保存する方法について知恵を貸してください
現状テキストファイルに以下のように保存しています
ツイートID||kugiri||ユーザID||kugiri||日付||kugiri||本文||kugiri||未読フラグ||kugiri||保護フラグ
これをString.Splitで配列にしています
問題は||kugiri||とツイートされるとデータが壊れます
実際は||kugiri||ではなくもうちょっと長い記号の羅列ですがどうしても万が一という不安が残ります
こういうデータはXMLで保存するものなのでしょうか
その際「<Honbun>本文</Honbun>」のように保存されると思いますが
「07214545</Honbun>hoge」などXMLのコードが含まれるツイートをされても壊れないものですか?
保存時に本文だけBase64等にするか全てバイナリで保存も考えましたが、ファイルを直接開いて検索したりできないのも不便です
あとは本文をデータの末尾にしてString.Splitを使わずに1つずつ配列に戻すか
データ量は20,000件程度です、他によい方法がありましたらアドバイスおねがいします

688:デフォルトの名無しさん
22/11/10 03:37:46.97 +sVvBbXs0.net
>>677
その程度のことで人に聞くならプログラムなんかするな


と言いたいところだが

タブで区切れ

689:デフォルトの名無しさん
22/11/10 05:44:42.33 nQDHqGzi0.net
>>678
ツイッターとか5chとか不特定多数のユーザが書き込みをできるシステムで
タブは絶対にユーザーが埋め込むことができない文字ということですか?

690:デフォルトの名無しさん
22/11/10 07:09:23.51 m98zu82a0.net
適当なで区切る
データにその記号があればエスケープしておく

691:デフォルトの名無しさん
22/11/10 07:45:50.73 nQDHqGzi0.net
>>680
例えば|chinko|という区切り文字を使っている場合にユーザーが|chinko|と書き込んだ場合
APIから取得時に|ちんこ|と置き換えておくと言う事ですね、表示するときには|chinko|に戻すと
現状改行コードを置き換えて保存しているので、そこにまとめて組み込めば楽そうです

692:デフォルトの名無しさん
22/11/10 08:16:38.34 XxWk5gSzr.net
文字列の改変で(削除でもなく)、エスケープとかサニタイズを独自に実装するのは苦労すると思うよ

693:デフォルトの名無しさん
22/11/10 08:34:01.14 9mQBoBy40.net
>>677
もしよろしけば下記について教えてほしい
その上で「JSON形式ではダメな理由」があるなら、それも教えて
1. 「保存」の目的(保存したデータの利用目的)
2. 現状の保存形式を選択した理由

694:デフォルトの名無しさん
22/11/10 09:11:14.02 O+ugNNB7M.net
xmlもjsonもエスケープ方法は規格として決められている
オレオレエスケープなんか考えなくても偉い人が作ったものを黙って使えば良い

695:デフォルトの名無しさん
22/11/10 09:13:17.40 TJ0qCovBd.net
ファイルに保存する際の定石をよく分かってないだけでしょ
JSONやXMLでもいいけど、この場合普通に一つのツリーとして書き出すと追記できなくて不便そうだから、JSON Linesがお勧めだな
Excelなどで表として扱いたいならCSVでもいいがJSON Linesよりはフォーマットにバリエーションがあるから考慮すべきことは多くなる

696:デフォルトの名無しさん
22/11/10 09:42:00.83 hu9oTdXa0.net
目視もしたいなら尚更そのままjsonでええやん

697:デフォルトの名無しさん
22/11/10 10:19:10.77 24bGZvg4a.net
最近学びはじめてC♯ではメインメソッドを省略できるということで楽だなーと思っていたら関数のオーバーロードのところでエラーが出てしまいました
従来通りクラス名とメインメソッドを書くやり方だと普通に出来たのでローカル関数(オーバーロードできない?)として認識されているためエラーが出てるという認識で合っていますか?
メインメソッドを省略した場合どうやってもオーバーロードできないのでしょうか?

698:デフォルトの名無しさん
22/11/10 10:33:00.98 vuUWLQnn0.net
>>687
トップレベルに書かれたメソッドはローカル関数になります
cf) //ufcpp.net/study/csharp/misc/miscentrypoint/#top-level-statements

699:デフォルトの名無しさん
22/11/10 11:17:10.46 eH71UEsUa.net
>>681
違う、それだと |ちんこ| と書き込んだら |chinko| になっちゃうだろ
|chinko| と書き込まれてたら |エスケープ||chinko| にして、表示する時に |エスケープ||chinko| を |chinko| に戻す
ただこれだと |エスケープ||chinko| って入力されたら |エスケープ| が無くなっちゃうから |エスケープ| 自身もエスケープして |エスケープ| が来たら |エスケープ||エスケープ| にして、表示時に |エスケープ||エスケープ| を |エスケープ| に戻す
※ |エスケープ||chinko| の保存データは |エスケープ||エスケープ||エスケープ||chinko| になる
まあ>>684の言う通りオレオレエスケープは知識としては知っておくべきだけど自前で実装するよりライブラリ等に頼った方がいいと思うよ

700:デフォルトの名無しさん
22/11/10 12:01:29.52 24bGZvg4a.net
>>688
ということはオーバーロードを使いたい場合トップステートメントのあとにクラスやら定義してから関数作るか別のファイルで作って呼び出すしかないという認識でいいですか?

701:デフォルトの名無しさん
22/11/10 12:31:50.00 vuUWLQnn0.net
>>690
それでいいと思います
ただ、そこまで色々するのならトップレベルに書かず普通に書いた方が分かりやすいんじゃないかなという気もしますが

702:デフォルトの名無しさん
22/11/10 12:55:47.41 24bGZvg4a.net
>>691
なんかどうなのかな?ってもやもや気になってしまって
教えてくれてありがとうございましたスッキリしました!

703:デフォルトの名無しさん
22/11/10 15:17:52.70 F9S+K/27M.net
CSVのreader/writerは標準では無いんだね

704:デフォルトの名無しさん
22/11/10 18:43:48.03 NDp6c9mu0.net
>>693
readerというかParserはあるよ
TextFieldParserクラス
URLリンク(dobon.net)
同じところに載っている独自解析のサンプルや自分でParser作った方が動作は若干早くなるだろうけど

705:デフォルトの名無しさん
22/11/10 18:44:43.64 QLIhXLlU0.net
ツイートって文字数決まってなかったっけ?
このパターンなら昔は固定長とかも候補になっただろうに
最近の文字コード事情考えると固定長は厳しいよなぁ

706:デフォルトの名無しさん
22/11/10 19:17:24.93 BjQppGzz0.net
拡張性とか無くなるけど
本文の位置をラストにしてcountを渡せば
Split一発で配列に出来るかも

707:デフォルトの名無しさん
22/11/10 20:27:59.70 m98zu82a0.net
5chのDATのようにHTMLエンコードして改行を<br>で置き換えたものを<>で連結するフォーマットは何気に簡単でいいね

708:デフォルトの名無しさん (オイコラミネオ MM91-o+MF)
22/11/11 11:48:16.03 V/N8drZJM.net
ここで出てる案だと普通はタブ区切りがいい
汎用性がある
excelやpythonのpandasでシンプルに読める
VSCodeでアドインもある

709:デフォルトの名無しさん
22/11/11 12:23:50.12 z+UtuJ+k0.net
>>698
>>679 の回答によると思うが

710:デフォルトの名無しさん
22/11/11 12:29:30.36 8WOXnYS7M.net
システムとして必要がないので抹殺するのみ

711:デフォルトの名無しさん
22/11/11 13:24:51.05 zPVyBVcV0.net
馬鹿みたいにHTML解析してデータ取得してるならまだしも普通にapi投げてるならjson一択やろ

712:デフォルトの名無しさん
22/11/11 13:33:07.32 OBpw9JhUa.net
ふつーYAML

713:デフォルトの名無しさん (ワッチョイ a2bd-+nMC)
22/11/11 16:29:42.18 WVb8D07I0.net
初めまして。
.NetCoreでコマンドラインみたいな改行させながらのログ表示をさせようと思ったのですが、どんなコントロール使えば良いのでしょう? 出来れば履歴遡れるようにスクロールバー付きで。
ラベルもテキストボックスもうまく表示してくれない・・・shownイベント以下に書いたからかな。

714:デフォルトの名無しさん (ワッチョイ f533-rIwK)
22/11/11 16:42:33.46 GYEdeJz40.net
>>703
画面への表示は何を使ってるの?
WinForms? WPF? それともそれ以外の何か?

715:デフォルトの名無しさん (アウアウウー Sacd-Aj/S)
22/11/11 16:50:47.79 YvvI/C4ma.net
同じところで普通に文字列渡したら表示されるなら読み込みに失敗してるのでコントロールのせいではない

716:デフォルトの名無しさん
22/11/11 18:11:52.32 FjpNhKohp.net
ただのテキストボックスとかラベルだと
そのとき持ってるテキストしか表示しないから
アペンドしてくしか無いんじゃね?

717:722
22/11/11 18:23:04.48 WVb8D07I0.net
 反応ありがとうございます。
>>704
 WinForm使っています。
 ・・・と、プロジェクト作成時に指定したと思ったのですが、プロジェクのプロパティを確認したら少し違っていました。
 Windowsフォームなのは間違いないですが、.NetCoreではなく.Net6.0でした。
 .NetとかCoreとかframewaorkとか、まだよく分かっていません。取り敢えず.Netにしとけって感じみたいですが。
 WPFはまだ私には早いらしいから避けて通ろうと思います。
>>705
 Form.Textは望んだ通りに表示されたのですけどねw
 当初 public Form1()の InitializeComponent();以下に記述していたのですが、処理が全部終わってからForm作画に入るのでShownイベントに移動したのですが・・・念を入れて配置した中断ボタンも作画されず穴開き状態で、ShownはFormの配置が終わった直後であって総ての配置が終わった跡ではないって事ですかね。 私が書いたのは読んだファイルを加工して別ファイルに書き出している程度のモノなのですが、普通の処理はどこに置けば良いんでしょうね。 要勉強なり。

#よく分からないまま入門しているから、一つの質問の不明部分を細く要件定義していくと目も当てられない長さになりますね・・・。

718:722
22/11/11 18:24:05.80 WVb8D07I0.net
>>706
 なるほど・・・試してみます。

719:デフォルトの名無しさん
22/11/11 18:38:29.81 k1VRcWZVa.net
キモイインデント

720:デフォルトの名無しさん
22/11/11 19:16:48.66 7I/0fxGc0.net
>>707
GUIなので実行ボタンでも押した時に処理すればいいんじゃないですかね?
ボタンの配置は気合を入れなくてもツールボックスからマウスでポトペタすると完成ですよ

721:722
22/11/12 06:25:09.95 gXw8amZq0.net
>>710
 ボタンスタートと言う方法なら今の実力でも綺麗に収まると思うのですが、D&Dかダブルクリックで起動したら後はノンストップで処理してひっそり終了してもらいたいので、ボタンでワンストップは仕様として煩わしい。
 と言う美学的な理由でやろうとしないのでした(^^;
>>706 改めまして。
 実装してみました。
 TextBox.Text += newword;的な記述をして痛い目を見ました。 TextBox.AppendText(newword);としないといけないんですね。
 ついでに初期設定で TextBox.ScrollBars = ScrollBars.Both;でスクロールバーも付けました。
 buttonは機能しないのに、TextBoxは問題なく機能していますね。何故だろう。
 早くshownからどっかに移動しないとですね。

722:デフォルトの名無しさん
22/11/12 09:45:26.79 zAtFaE7C0.net
スタンドアローンなアプリで、アプリの起動をパスワード保護したいのですが、ILSpy等で丸見えにならない程度の強度を持つにはどのような方法がありますか?

723:デフォルトの名無しさん
22/11/12 09:59:48.08 tbSOUgpp0.net
C#以外でdllにしとけば?

724:デフォルトの名無しさん
22/11/12 10:23:23.19 B4kjFmw80.net
>>712
パスワードチェックロジックを難読化ツールでぐちゃぐちゃにすると追う気無くなる

725:デフォルトの名無しさん
22/11/12 10:29:06.28 ZNG2TRSk0.net
>>712
適当なアルゴリズムのハッシュ値を比較すれば?

726:デフォルトの名無しさん
22/11/12 12:11:02.84 Ra6ElU+i0.net


727:デフォルトの名無しさん
22/11/12 12:12:52.85 bRljaFHR0.net
>>712
んなもんローカルに全てのデータがある時点で何しても無駄
ILだけ対策すればいいならネイティブコンパイルすればいい
そうすりゃ他のネイティブアプリと同じく機械語になるから

728:デフォルトの名無しさん
22/11/12 12:13:15.16 Ra6ElU+i0.net
k

729:デフォルトの名無しさん
22/11/12 12:17:11.67 Ra6ElU+i0.net
n

730:デフォルトの名無しさん
22/11/12 13:44:40.40 4XgMUuW5M.net
>>712
アプリの本体をパスワード付きzipかなんかで圧縮しといて動的にロードする

731:デフォルトの名無しさん
22/11/12 13:48:14.08 YXyqvQzKa.net
>>720
ダサすぎるし解凍したところでコピーできんじゃん

732:デフォルトの名無しさん
22/11/12 13:55:42.98 guv9Rfqm0.net
パスワードのみのテキストファイルを
そのパスワードでzip圧縮
解凍成功と中身の照合で実行継続か

733:デフォルトの名無しさん
22/11/12 13:57:46.17 YXyqvQzKa.net
>>722
実行ファイルをバイナリエディタで開いて照合する箇所を飛ばす命令を書き込めば照合しなくなるぞ

734:デフォルトの名無しさん
22/11/12 14:51:41.26 f1IcSnyo0.net
>>722
それでいいなら主要なコードを暗号化しといて解凍したコードを動的ロードして実行すれば>>723みたいな攻撃にも耐えられるな

735:デフォルトの名無しさん
22/11/12 15:00:47.68 Y/i2pfZ30.net
>>715で良くね?

736:デフォルトの名無しさん
22/11/12 15:00:48.57 ajB/boEg0.net
ディスクに平文ファイルを書き出したところを盗まれる。
オンメモリでやりたいけどそっちはデータ実行で引っかかるんだよな。

737:デフォルトの名無しさん
22/11/12 15:02:24.87 YXyqvQzKa.net
>>724
暗号化する部分とキーが平文だからだめだな

738:デフォルトの名無しさん
22/11/12 15:11:29.38 c/ILT9OL0.net
まあ>>717の言う通りで
結局現行の高価な商用アプリはほぼシングルユーザーライセンスに移行してるし
今時ネットに繋いでないなんてありえないからKMSみたいに一定期間で認証させるとかだな
実行したらメモリに全部展開されるしそこ覗かれるようならローカルのファイルをいくら細工しても無駄だよ

739:デフォルトの名無しさん
22/11/12 15:12:12.94 LpiKZFMR0.net
なんか変に面倒な方向にしようとする人たちがいるな
>>712
パスワードを知られたくないだけなら>>715で十分。MD5でもSHA-512でもお好きなもので
パスワード起動部分を突破されたくないなら>>717

740:デフォルトの名無しさん
22/11/12 15:16:20.60 c/ILT9OL0.net
>>711
まずWindowsのGUIの基礎を確認した方がいいよ
メッセージループの仕組みやformの作成から表示までにどのイベントがどういう順序で呼ばれるかとか
shownのタイミングで設定が必要な場合もあるけど質問の内容はloadの段階で片がつくんじゃないかね

741:デフォルトの名無しさん
22/11/12 15:27:16.04 2L2Z04CZ0.net
ライセンス認証前提でレスしてる人が多いけど本当にそういう用途なのか?
今どきそんなことするかな?

742:デフォルトの名無しさん
22/11/12 15:54:02.21 ncy2h0/Ld.net
そのパスワード認証必要?

743:デフォルトの名無しさん
22/11/12 15:56:41.52 ncy2h0/Ld.net
毎回入力させるのか
次回以降のためにキャッシュでファイルローカルに持たせた場合、どう保存するのか

744:デフォルトの名無しさん
22/11/12 16:04:56.79 Y/i2pfZ30.net
どうって普通にパスワード置くだけじゃね

745:デフォルトの名無しさん
22/11/12 16:21:43.32 ncy2h0/Ld.net
普通に置くパスワードって必要?

746:デフォルトの名無しさん
22/11/12 16:29:23.68 Y/i2pfZ30.net


747:デフォルトの名無しさん
22/11/12 16:39:07.13 ZNG2TRSk0.net
こんな感じで良いんじゃない?
・パスワードが保存されてるか確認
・パスワード入力
・ハッシュ値を比較
・(OK)ログイン/平文パスワードを適当に保存
・(NG)リトライ
次回以降
・保存されたパスワードとハッシュ値を比較
・(OK)ログイン
・(NG)パスワードファイルを消してリトライ
ハッシュ値の生成はレインボーなやつとか総当りとかまでは対策しときたいかなぁ
パスワード検証用によく使われるアルゴリズム使用して、saltでゲタ履かせてストレッチングで処理時間の確保ぐらいはしときたい
バイナリいじるやつまで考えると全然対策にならんけどねぇw

748:デフォルトの名無しさん
22/11/12 16:44:03.53 Y/i2pfZ30.net
Linuxはどうしてるんだろう

749:デフォルトの名無しさん
22/11/12 16:51:30.20 ajB/boEg0.net
osのログインとアプリの起動を同列には考えられんが、linuxも
ディスクを抜き取って /etc/passwd を書き換えられたらアウト。

750:デフォルトの名無しさん
22/11/12 17:27:01.84 vKl12ZSx0.net
みんな俺のために働け

751:デフォルトの名無しさん
22/11/12 17:29:44.19 ZNG2TRSk0.net
今どき /etc/passwd にパスワードおいてるディストリビューションってあるの?

752:デフォルトの名無しさん
22/11/12 17:48:17.21 ajB/boEg0.net
そこは本質的な話じゃないから適宜shadowにでも読み替えて。

753:デフォルトの名無しさん
22/11/12 17:52:51.14 2L2Z04CZ0.net
>>737
ハッシュ化するのは平文パスワードを保存しないためなんだが・・・

754:デフォルトの名無しさん
22/11/12 17:59:12.62 1r3Bwkn20.net
>>737
今時平文パスワードを保存って発想が出て来るのは不味いぞ

755:デフォルトの名無しさん
22/11/12 18:17:21.03 ZNG2TRSk0.net
>>743
ハッシュ値にこだわるなら、ストレッチングの回数を適当に減らしたハッシュ値を保存→次回以降は減らした回数ストレッチングして検証。でも良いと思うけど、すでにユーザの手元にパスワードがある前提のスタンドアロンアプリだからねぇ
適当なトークンの作成ロジックが隠せない以上平文で良いと思う
平文が嫌なら、毎回パスワードを聞く感じかなぁ

756:デフォルトの名無しさん
22/11/12 18:49:41.37 Y/i2pfZ30.net
ハッキングでもされなきゃローカルに保存したパスワードなんて流出しないやろ

757:デフォルトの名無しさん
22/11/12 18:53:34.55 lzvWNBzY0.net
ローカルで動作するアプリは、極論言ってしまうと労力惜しまなければどうやってもクラッキング出来てしまうからなぁ
ドングルみたいなハードウェアや、ネットワーク認証挟むとかなり強固にはなるけど
結局のところ、どこまでの強度が必要かって話になる

758:デフォルトの名無しさん
22/11/12 18:56:34.83 THWEmJXVa.net
いくら認証を強化しても認証をスキップするよう書き換えられたら終わるんだから気にしないが吉

759:デフォルトの名無しさん
22/11/12 19:00:47.98 Y/i2pfZ30.net
ユーザーが保存したキーの窃取とアプリのキーの解析を混同してる奴いそう

760:デフォルトの名無しさん
22/11/12 19:33:04.85 guv9Rfqm0.net
>>712
> ILSpy等で丸見えにならない程度
じゃないのか・・・

761:デフォルトの名無しさん
22/11/12 19:47:44.72 bRljaFHR0.net
その程度を求めてるならネイティブコードにコンパイルすればいいんだって
逆アセンブルで丸見えだけどな
なぜかILだけ逆アセンブルできると思ってるやつ時々いるよな

762:デフォルトの名無しさん
22/11/12 19:56:29.64 lzvWNBzY0.net
何なら難読化ツールもあるし

763:デフォルトの名無しさん
22/11/12 19:57:28.32 Y/i2pfZ30.net
バイナリ改変したら動かないようにできないの?

764:デフォルトの名無しさん
22/11/12 20:00:08.63 syTmwMgY0.net
プログラムコードにしか見えない文字列をデータとして格納しておいて、それをキーにする

765:デフォルトの名無しさん
22/11/12 20:04:47.69 THWEmJXVa.net
てかデフォで難読化してくれよ

766:デフォルトの名無しさん
22/11/12 20:07:09.00 guv9Rfqm0.net
>>753
それが完璧に出来るならコンピュータウィルスの大部分が無くなりそう

767:デフォルトの名無しさん
22/11/12 20:08:53.77 lzvWNBzY0.net
>>755
パフォーマンスは落ちるだろうし、別に難読化が要らないプログラムの方が多いから
そんなもんオプションでいいだろ

768:デフォルトの名無しさん
22/11/12 20:09:20.08 ZNG2TRSk0.net
>>722
コレ結構好きかも
個別にパスワードを


769:設定したいならかなりお手軽だね



770:デフォルトの名無しさん
22/11/12 20:10:42.29 THWEmJXVa.net
>>757
オプションでもいいけどVSに実装してくれ

771:デフォルトの名無しさん
22/11/12 20:13:56.36 ZNG2TRSk0.net
>>753
配布時の検証にはMD5とかよく見るね
動作も制限できそうだけど、その部分を回避されるとやっぱりだめだからなぁ

772:デフォルトの名無しさん
22/11/12 20:17:55.47 EWhm+EbT0.net
起動は別ファイルからってやつは
実行前にバイナリ確認してるのかな?

773:デフォルトの名無しさん
22/11/12 23:06:21.95 B4kjFmw80.net
>>759
Dotfuscatorがあるでしょ

774:デフォルトの名無しさん
22/11/13 00:12:55.08 0j2qr49h0.net
zipはパスワード分からなくても中身のファイル名わかれば上書き可能なので
いろいろ工夫しないとめちゃくちゃ簡単に突破されるよ

775:デフォルトの名無しさん
22/11/13 00:51:17.24 uK9Cge080.net
>>753
アプリの電子署名がそれじゃないの?
Windowsだけど

776:722
22/11/13 06:22:17.77 TFN9Og8f0.net
>>730 見落としていました。申し訳ございません。
 確かに、基礎的な所は全然分かっておりません。
 WINDOWS環境では、C+DXライブラリしか経験ないものでして。 あとHSP。
 C#の入門サイトでWINの基礎を抑えている所にまだ当たっていないというのもあります。
 と言うか、多分その基礎が身に付いたらここで質問せず教える立場だろーなーと思いますw
 WINDOWSの基礎からC#のWinFormを入門してコントロールの制御以上に踏み込んでいるサイトがありましたら、紹介よろしくお願いします。
 少し報告。
 shownイベントが駄目なら、Main()に書き足せば良いんじゃね?とProgram.csを探し出してshownから移植しようとしてみました。
 クラスをよく分かっていないのでpublic static void body()とか理解もしていないのにテキトーなキーワードを散りばめてメンバーを書き足したのですが、そこからだとコントロールが一切見えないっぽいので諦めて元に戻しました。
 D&Dと単独実行(コマンドライン引数とカレントのファイル検索からのファイル取得)からのノンストップなスムーズ実行を実現したいからbutton以下に収めない記述を探しているのですが・・・まさかチュートリアルが見付からないとか、戸惑っています。

777:デフォルトの名無しさん
22/11/13 06:46:08.30 4/Hqzxve0.net
基礎はWebの断片的な情報だと厳しいからでかい図書館や本屋で紙の本でも読んで来い
電子はパラパラめくって中身を確認できないからできれば紙がいい

778:デフォルトの名無しさん
22/11/13 07:30:57.54 BdGTc1Dp0.net
>>763
確かに >>722 のままだとちょっとまずいですね
仕組みがバレてれば、ユーザが任意のパスワードでzipファイル作って簡単に置き換え可能なので
方向性は好きだけど、もうちょっとねる必要ありですね

779:デフォルトの名無しさん
22/11/13 07:57:25.67 BdGTc1Dp0.net
>>767
少し考えてみたけど、ロジックが覗き見れる前提だとこの方法はダメかな...
何やっても置き換えで対応できる気がする

780:デフォルトの名無しさん
22/11/13 08:10:56.99 aD+9aMvk0.net
上にも書かれてるけどガチでやられたらどんな方法使っても完全な対策なんて無理だよ

781:デフォルトの名無しさん
22/11/13 08:52:02.92 BdGTc1Dp0.net
まぁ、何を脅威としてみなすか、どこまで許容するかですよね
俺が提案したハッシュ値での検証もアルゴリズムばれ、ハッシュ値ばれまでは大丈夫だけど、書き換えには無力だし
ともあれ、個人的には面白い話題だったわ

782:デフォルトの名無しさん
22/11/13 09:04:58.19 6eP485iya.net
この質問者の場合は知らんけどユーザーがパスワード入力を許せるくらいの良いソフトを作ってから言えと言いたくなる事例が割とある
まず使ってもらうハードルが高いのに余計なことしなくていいんだよ
気に入ったユーザーは自然と財布が緩むからより便利になる機能をプラグインで販売すりゃいい

783:デフォルトの名無しさん
22/11/13 09:11:01.42 aD+9aMvk0.net
いきなり謎の上から目線w

784:デフォルトの名無しさん
22/11/13 09:24:11.50 4jLRyBA70.net
高額なソフトを作っている会社はPC内でのチェックが簡単に突破出来てしまう事を判ってるから、
大体Webアクティベーションやドングルを採用してる

785:デフォルトの名無しさん
22/11/13 09:31:37.68 BdGTc1Dp0.net
上から目線じゃなくて実体験じゃない?
ちなみに俺は実体験としてやらかしたことがあるw
無駄に難読化しようとしたわ

786:デフォルトの名無しさん
22/11/13 09:51:17.84 93KwHlO1a.net
なんかこのスレ上から見られてるんじゃないかといつもビクビクしてる妙に卑屈なやついるな
それ多分初心者だから自信がないんじゃなく何年やっても初心者だから自信がないんだぞ
普通初心者なんて三ヶ月で卒業するから学ぶのに精一杯で卑屈になってる暇なんかないわ

787:デフォルトの名無しさん
22/11/13 10:09:47.66 2jgXqyDd0.net
>まず使ってもらうハードルが高いのに余計なことしなくていいんだよ
このセリフは「良いソフトを作ってから言えと言いたくなる事例」の本人に言ってやれってことだろ。

788:デフォルトの名無しさん
22/11/13 10:45:16.60 7K/NPeS80.net
C#でセキュリティーをなんとかしたいのならUWP使うのも手だけどね

789:デフォルトの名無しさん
22/11/13 12:15:05.54 eEed0M79M.net
>>772
いつもの人だよww
最近は質スレで暴れてたからこっちが平穏だっただけ

790:デフォルトの名無しさん
22/11/13 12:20:42.58 lSfeZyRJa.net
卑屈なやつだなw

791:デフォルトの名無しさん
22/11/13 16:25:03.21 7K/NPeS80.net
人の成果物をタダで使わせろって暴れるキチガイは勘弁してほしいわ

792:デフォルトの名無しさん
22/11/13 16:45:13.25 4/Hqzxve0.net
世の中そんなやつばかりだったからこうなったわけで
WindowsでUWP使って小銭は稼げてるかい?

793:デフォルトの名無しさん
22/11/13 18:21:39.43 RwIffndXM.net
がっぽり儲けてます

794:デフォルトの名無しさん
22/11/13 18:29:49.19 p3TW3Ix/M.net
最初は手作り感万歳でも使ってくれる人はいた
今はプロ作ったような紹介画像がないと悲しいことに

795:デフォルトの名無しさん
22/11/14 17:01:48.00 p8dKwuQs0.net
すみません。
.NET MAUIなのですがページのナビゲーションでパラメーターを渡す処理を作ったのですが、
うまく表示されません。
ブレークポイントを使うと以下のような形になり少しおかしいです。
プロパティSendModelを作成するところでブレークポイントを持ってくるとちゃんと変数が渡されているのに対して
イニシャライズコンポーネントをした後にブレークポイントを持ってくると変数がnullになってしまいます。
なぜこうなるかわかるかたいますか?
URLリンク(imgur.com)
URLリンク(imgur.com)

796:デフォルトの名無しさん
22/11/14 17:08:14.46 Latj9fgHM.net
MAUIって仕事ありそう?

797:デフォルトの名無しさん
22/11/14 17:15:29.93 p8dKwuQs0.net
>>785
今は無いけど任天堂やJRやNHKからちょこちょこあるんじゃね?
あと政府とMicrosoftズブズブだからその辺でなんかありそう

798:デフォルトの名無しさん
22/11/14 17:15:40.85 p8dKwuQs0.net
マイナンバー関係とかね

799:デフォルトの名無しさん
22/11/14 17:16:54.88 p8dKwuQs0.net
すまんJR関係なかったパスモは東京メトロだったわ

800:デフォルトの名無しさん
22/11/14 17:17:39.08 p8dKwuQs0.net
とりあえず24年までには置き換えしないといけないしね

801:デフォルトの名無しさん
22/11/14 17:21:53.03 Latj9fgHM.net
>>786
先を見据えてって感じかね
もうJavaやりたくないしWeb系は先行者に勝てんし、MAUIに賭けてオラいっちょ勉強してみっぞ

802:デフォルトの名無しさん
22/11/14 17:31:00.77 p8dKwuQs0.net
>>790
がんばれー
JavaでAndroidやってたらMAUI強いかも
Javaで書いてたAndroidAPIがそのままかけるからね
URLリンク(learn.microsoft.com)

803:デフォルトの名無しさん
22/11/14 17:36:07.06 p8dKwuQs0.net
>>784
すみませんこれ自己解決しました
一番最初にイニシャライズコンポーネントが呼び出されてその後プロパティを取得されるみたいです
おかしかったのはxamlのBindingの記述でそのままオブジェクト(SendModel)のプロパティを書いてたからでした
{Binding SendModel.Title}で確認できました

804:デフォルトの名無しさん
22/11/14 17:58:09.71 cpuc2dy6d.net
>>814
Flutterがいいんじゃない
MAUIに比べりゃ圧倒的に仕事あるよ

805:デフォルトの名無しさん (ワッチョイ 2301-0qx4)
22/11/14 18:18:45.36 p8dKwuQs0.net
>>793
C#のスレでFlutterすすめるのは止めなさい
JavaやってるならDartよりC#の方が親和性高いでしょう

806:デフォルトの名無しさん (ワッチョイ b507-z+Fy)
22/11/14 18:29:08.87 HDY6oj/W0.net
仕事として5chで叩くならどのプラットフォームがいい?

807:デフォルトの名無しさん (ワッチョイ 2301-0qx4)
22/11/14 18:29:30.58 p8dKwuQs0.net
Dartはchildやchildrenの部分が最高にアホwって思う

URLリンク(i.imgur.com)

808:デフォルトの名無しさん (スプッッ Sd03-KAzt)
22/11/14 18:54:36.79 8Qr3XdFEd.net
>>796
宣言的にCompositeパターン書くならC#でも似たコードにならんか?
何がアホなんだ?

809:デフォルトの名無しさん (ワッチョイ 2301-0qx4)
22/11/14 19:01:16.65 p8dKwuQs0.net
>>797
無駄にCompositeして意味あんの?
.NET MAUIのMVU用ライブラリはFlutter真似して作られてるから無駄にChildrenとかつけちゃうわな
そりゃそうなるわ
.NET MAUI系You Tuberのこの人もこの書き方好きじゃないからMVVMでやりますって言ってるぞ
URLリンク(youtu.be)

810:デフォルトの名無しさん
22/11/14 19:31:42.89 hjaMiJ3dM.net
>>794
どっちも元々Javaフォロワーでしょ
C#はJavaからの飛躍が大きいからDartの方が覚えること少ないよ

811:デフォルトの名無しさん
22/11/14 19:39:58.14 HDY6oj/W0.net
DartはJavaScriptだろ

812:デフォルトの名無しさん
22/11/14 19:49:37.13 p8dKwuQs0.net
>>799
DartはJavaScriptを元にした言語だよ(AltJSとか言われてる)
DartとかJavaScriptを元にしたAltJSがみんな潰れてC#を元にしたTypeScriptがここまで発展したの笑えるよな
FlutterはDartの救済措置でしかない

813:デフォルトの名無しさん
22/11/14 19:52:02.34 8Qr3XdFEd.net
>>798
いやだから何がアホなんだ?誰かが言ってたから?

814:デフォルトの名無しさん
22/11/14 20:02:04.55 p8dKwuQs0.net
>>802
無駄じゃんその1語
いるか???
コンパイル通すときいるの?
普通に
StackLayout{
Label label1{
Text="ほげ",
TextColor=Red,
TextAttribute=Bold},
Label label2{
Text="ほげ",
TextColor=Red,
TextAttribute=Bold}
}
とかにできなかったのだろうか?
これがスムーズじゃね?

815:デフォルトの名無しさん
22/11/14 20:21:04.18 8Qr3XdFEd.net
>>803
child書くか書かないかってレベルの話かよ…

816:デフォルトの名無しさん
22/11/14 20:55:04.59 p8dKwuQs0.net
>>804
そりゃそうでしょ…
見にくいしどれがどれかわからんUIの作りづらさは一級品だよねMVU

817:デフォルトの名無しさん
22/11/14 21:18:14.71 ans/MkehM.net
>>784
本当にお前は迷惑で恥知らずなゴミだなMAUI君よお
MAUIの質問ならここじゃなくてMAUIスレに持ち込めよ
Xamarinスレだったのをスレ内で合意を取るようなこともせず勝手にMAUIスレへスレタイを変えて
散々私物化してるのはお前だろ?
そっちのスレで責任もって解決しろよ
なんでわざわざこっちのスレへ持ってくるんだ?
お前が好き勝手やってるせいで答えてくれるようなスレ住民がみんないなくなっちゃったとかそういうことか?

818:デフォルトの名無しさん
22/11/14 21:20:26.72 ans/MkehM.net
あとFlutterもDartもスレ違いだしFlutter叩きならなおスレ違いだ
お前が立ててさんざん自演なりで盛り上げようとしても盛り上がらないクソVSスレでやれ
Flutter VS .NET MAUI VS React Native
スレリンク(tech板)

819:デフォルトの名無しさん
22/11/14 21:25:38.42 ans/MkehM.net
あと、この板にクソスレ立てんな
直近で目に付いたのは
スレリンク(tech板)
スレリンク(tech板)
だけどお前これ以外にも一杯立ててるだろ
そういうのはお前の巣でやれ。VIPだか何だか知らんがそこから出てくるな

820:デフォルトの名無しさん
22/11/14 21:43:20.92 p8dKwuQs0.net
C#全体のことはここで聞く
MAUI特有のことはMAUIスレで聞く
当然では?

821:デフォルトの名無しさん
22/11/14 22:11:38.95 ans/MkehM.net
すげーな
さすが恥知らずのMAUI君
先にMAUIスレで質問するようなこともせずに
このスレでMAUIの質問をしておきながら
>>809みたいなことを平然と言ってのけるこの神経
でもって826,827みたいな自分にとって都合の悪いことは何一つ見なかったことにしてスルーするんですね?
いやー「.NET MAUI HighSchool」ってコテでしたっけ
この実績で就職活動とか頑張ろうとしてるんですよね
おみそれしました

822:デフォルトの名無しさん
22/11/14 23:59:43.67 ans/MkehM.net
「.NET MAUI HighSchool」さん、朝から晩までこの板に張り付いて
本日の書き込みランキングのワンツーフィニッシュおめでとうございます!!
URLリンク(hissi.org)
他のスレでは23時以降も活発に書き込みされてるようですが、
その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
でも1点だけ反論して残りの指摘を何一つなかったことにするのはやめてほしいなとは思いますけどね
(ぶっちゃけchildren1つ書くかどうかなんてStoryBoardの地獄に比べたら屁でもないけどまあこれはスレチなんでどうでもいい)
まさか828で反論した直後にこっちのことをNGIDしたからレスが見えてない、なんてしょっぱい言い訳はしませんよね?
それとも貴方自身が恥知らずのゴミムシであることをレスしないことを以て体現しておられるのでしょうか???

823:デフォルトの名無しさん
22/11/15 00:21:34.85 fFtAGper0.net
>>811
答える必要ないからレスしなかっただけですが???
全レスする必要あります???

824:デフォルトの名無しさん
22/11/15 07:01:23.31 zF+MxnbgM.net
>その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
って書いてあるよな?
日本語もろくに理解できない馬鹿なのかお前は?
ID:p8dKwuQs0 の書き込みとか
他のスレの書き込みとかを見る限り全レスがデフォみたいなんで
返信がないってことでよっぽど返信したくないことを書かれちゃったのかーと思っちゃったけどそうじゃないんだな?
じゃあ俺の書き込みに限らずすべての指摘に対して逃げずに全レスしろよ
そこまで勿体つけたからにはさぞかしご立派な反論が来るんだろうな?
どうせお前は一日中ずーっと5chするくらいしか能がないんだから好きなだけ時間かけて書き連ねてみろよ
違いはchild/children一個だけみたいな見るほうがリアクションに困る失笑しかできないような返しすんじゃねーぞ

でもさすがにこのスレで続けるのはC#関係ないしスレチで迷惑だから
お前が立てたお前専用のゴミスレ↓
.NET MAUI HighSchool
スレリンク(tech板)
でやれ
よかったな、お前のクソスレに人を呼び込めるぞ
感謝しろ

825:デフォルトの名無しさん
22/11/16 21:19:21.33 Ndk7vWNsM.net
あれれMAUI君どこいっちゃったの?
>>812みたいなファイティングポーズを取ってたからさぞかしご立派な返信が来るかと期待してたのに
このスレにも晒したスレにも何一つ反論できずに尻尾を巻いて逃げ出した?
それともまさか名無しになって他人のフリしてるなんて恥ずかしいことやってる?
このスレもそうだし他のスレ(例えばWPFスレ スレリンク(tech板) )でも
さんざん「.NET MAUI HighSchool」ってコテを名乗って毎日朝から晩まで書き込んでたのに
急にこのコテ使った書き込みが無くなったみたいなんだけど、どうしちゃったんだろう

うん、なんというか拍子抜けだわ
さよならMAUI君、もう二度とこの板に顔出すようなことをしてくれなければそれでいいや

826:.NET MAUI HighSchool
22/11/16 22:20:27.60 F1FwASBt0.net
>>814
キモ
つけ忘れただけだわカス

827:デフォルトの名無しさん
22/11/16 22:59:08.10 Ndk7vWNsM.net
なんだ消えたんじゃなかったのか
とりあえず取って付けたような「つけ忘れただけ」なんて後出しの言い訳乙
で結局直近の833以外のレスは見なかったことにしてまた逃げ出すんでしょ?
さすがMAUI君

828:デフォルトの名無しさん
22/11/16 23:09:20.45 Ndk7vWNsM.net
てゆうか、実況版に
「.NET MAUIでAndroidでサイン波の出力をした天才プログラマーだけど質問ある?」
なんてタイトルのスレ立てたはいいものの
誰にも相手してもらえなくてレス数1桁で落ちてたけど、このスレ立てたのもMAUI君だよね?
その知識も決して自分のものじゃなくて
この板で1から10まで聞いて回って集めた受け売りの知識だよね??
いやー天才のやることはひと味もふた味も違いすぎて凡人にはその感性が理解できませんわー

829:デフォルトの名無しさん
22/11/16 23:11:21.10 Ndk7vWNsM.net
ほかにも実況板とかVIPとかでいろいろスレ立てても誰にも相手してもらえてないみたいだね
だからって、この板でまでよその板と同じ感覚でクソスレ立ててお山の大将気取ったりするのはどうかと思うよ

830:デフォルトの名無しさん
22/11/16 23:15:53.76 Ndk7vWNsM.net
でもってVIPで建てたスレが多少伸びて反論喰らったら自分ではなにひとつ対処できなくて
この板に泣きついて助けを求めたりもしたよね?
正直すっごく恥ずかしいと思うよ
MAUI君は「別に何一つ恥ずかしいことなんてしてない」みたいなこと言ってたけど、いまでもそう思ってる?

831:.NET MAUI HighSchool
22/11/17 00:16:56.85 uB3aH/K90.net
>>819
反論食らった?
ここで言われてたけど実際WebViewで実装できてんだからいいじゃんって結果になったんだが?

832:デフォルトの名無しさん
22/11/17 07:30:02.27 f45dDCUTM.net
>>820
ねえそんなどうでもいいとこだけしか反応できないの?
「反論」って言葉が気に入らないならじゃあ「的外れな指摘」と言い換えたとして
その的外れな指摘ひとつお前一人じゃ応対できなくてこのスレに泣きついたよね
でもって手取り足取りレクチャしてもらってさ
元のスレでドヤ顔で披露してて恥ずかしくないの?
あと838以外のレスにはなにひとつ言い返せないの?
お前がどんだけ5chに入り浸ってるのかちょっと気になったんで
今年立てたスレの数とか聞いてみてもいいかい?

833:.NET MAUI HighSchool
22/11/17 12:23:04.13 AcAViRuk0.net
>>821
いや別に恥ずかしくないけど?
分からなかったら人に聞かないの?
だとしたらアホだと思うしこんなスレいらない

834:デフォルトの名無しさん
22/11/17 12:31:29.53 EmPKjKBIM.net
質問するときだけコテ外すのはやめれ
応じる人は応じるし、無視したい人は無視する

835:.NET MAUI HighSchool
22/11/17 12:35:24.02 AcAViRuk0.net
>>823
わかっな

836:.NET MAUI HighSchool
22/11/17 12:35:29.50 AcAViRuk0.net
わかった

837:デフォルトの名無しさん
22/11/17 17:07:21.41 ItSxb1EQA
誰か2chの使い方講座してくれ

838:デフォルトの名無しさん
22/11/17 17:08:05.66 ItSxb1EQA
だーれぇかぁぁぁぁ

839:デフォルトの名無しさん
22/11/17 17:08:34.58 ItSxb1EQA
だれぇかぁぁ

840:デフォルトの名無しさん
22/11/17 17:09:16.90 ItSxb1EQA
てか2chって無職の巣窟って聞いたけど本当なん?

841:デフォルトの名無しさん
22/11/18 06:38:30.53 T+31eRIOM.net
>>822
質問することそれ自体が恥ずかしいことだなんて俺は言ってないし非難もしてないんだが
(もちろん質問することが悪いことだなんて思ってないし、質問で得た知識は有効に生かしてほしいと思ってるが)
どこをどう捻じ曲げて受け取ってそういう認知にいたるのかさっぱり分からんわ
ていうか835,836,837みたいなのにはMAUI君は一言も言い返してこないんだが
おまえ自身も恥ずかしいことだとちゃんと認識してるからなんだよね?

842:.NET MAUI HighSchool
22/11/18 08:32:33.70 dFTql+Wp0.net
>>830
いやお前が知りたい答えがわからないから
何を返してほしいの?

843:.NET MAUI HighSchool
22/11/18 08:35:56.22 dFTql+Wp0.net
835逃げ出すんでしょ?←どう答えてほしいの?
836受け売りの知識かどうかが知りたいの?なんJでスレ立てたのが俺なのか聞きたいの?
837お山の大将気取ってるのはどうかと思うよ?←これって質問なの?

844:デフォルトの名無しさん
22/11/18 18:34:03.07 De8oASvZM.net
人間初心者か
このスレC#初心者用であって人間初心者用じゃねえんだよな
保育園通ってろよガキ

845:デフォルトの名無しさん
22/11/18 19:50:02.12 y5ukyeaS0.net
最近、未確認飛行というサイトで初めてのプログラムとしてc#を学び始めたんだけど
URLリンク(ufcpp.net)
ここのサンプルというところのプログラムでオーバーライドされたtoString()のメソッドが呼ばれるのってなんでかな?
どこでもそのメソッドを呼ぶようなことをしてないように見えるけど自分で実行してみたら確かに呼ばれてる
すごい基本的な事なんだろうけどどうか教えてほしい

846:デフォルトの名無しさん
22/11/18 19:54:59.04 9HcKlt4I0.net
Console.WriteLineの中で呼ばれてるんだよ

847:デフォルトの名無しさん
22/11/18 20:08:52.48 y5ukyeaS0.net
>>835
これで呼ばれてることになってるんだ!?
教えてくれてどうもありがとう
仕組みはまだわからないけれど疑問がとけてすっきりした

848:デフォルトの名無しさん
22/11/18 20:13:22.53 9HcKlt4I0.net
例えばこういうこと
public void WriteLine(object obj) {
 WriteLine_Inner(obj.ToString());
}
WriteLine_Innerは文字列だけを受け付けて表示するメソッドとする
WriteLineを呼ぶとToStringが呼ばれる

849:デフォルトの名無しさん
22/11/18 20:17:28.69 y5ukyeaS0.net
>>837
おお、すごい分かりやすい!
ここまで丁寧に教えてくれて本当にありがとう
これで気兼ねなく次の項目に進めるよ

850:.NET MAUI HighSchool
22/11/18 22:25:21.33 dFTql+Wp0.net
ほんとに未確認飛行物体からやってるすげー

851:デフォルトの名無しさん
22/11/18 23:58:15.19 nTmfkfcZM.net
手を動かさない学ばないやつは前に進めない
くだらないことしか言えない
いつまでも同じ場所にいる

852:デフォルトの名無しさん
22/11/19 19:29:30.85 MFJeLtYyu
すっげぇ本当に頭がおかしぃみたいだ…(?.? )

853:デフォルトの名無しさん
22/11/19 19:28:32.08 kzcZtDQa0.net
JavaとかC#でenum使うメリットがわからん

854:デフォルトの名無しさん
22/11/19 19:33:40.92 hH2yPCCm0.net
オプション指定やろ

855:デフォルトの名無しさん
22/11/19 19:35:53.24 wfHvhfxa0.net
>>842
まず検索したか?
そのまま「enum使うメリット」でググって納得できなければ使わなければいい
それ以上はここで話してもキリがない

856:デフォルトの名無しさん
22/11/19 20:00:26.11 MFJeLtYyu


857:デフォルトの名無しさん
22/11/19 20:06:41.05 MFJeLtYyu
>>842

聞きたいんだけど、リプライみたいなのってどーやってやるの?

858:デフォルトの名無しさん
22/11/20 13:30:32.37 hkzvE6vGM.net
>>842
状態などを使うときにmode==0 とか mode==1よりわかりやすい
mode==モード.家でまったり中
mode==モード.お仕事中
など名前がついてるからわかりやすい

859:デフォルトの名無しさん
22/11/20 14:14:28.85 j4QfOsfua.net
逆になんでC#とかだと要らないと思うのか気になる

860:デフォルトの名無しさん
22/11/20 14:45:18.61 AxU0uBeT0.net
定期的に現れるレス古事記だと思うことにしてる

861:デフォルトの名無しさん
22/11/20 15:42:59.87 6Lmlby97a.net
いやあれだろ
条件が複雑すぎてenumにできないと暴れてたアホ

862:デフォルトの名無しさん
22/11/20 15:47:47.16 wwqc7KSjM.net
enumってそれが使えるスコープっていう概念もあるのですか?

863:デフォルトの名無しさん
22/11/20 15:51:44.50 MjJ+/fUP0.net
普通に継承できねぇから
ステータス並べちまうと
クラスを継承したときに
enumも継承して
ステータス増やそうとするけど
enumの継承はできないので
ステータスは定数で並べるしかない
ってだっせー状態になる

864:デフォルトの名無しさん
22/11/20 15:53:25.80 MjJ+/fUP0.net
enum周り作ったやつの脳みそちんぽなんじゃん?

865:デフォルトの名無しさん
22/11/20 15:59:28.92 wwqc7KSjM.net
クラス内でenum宣言することがあると思うのだけど
そうした場合はそのクラス内だけでしかそのenumは使えないんですっけ?

866:デフォルトの名無しさん
22/11/20 16:09:13.26 ruJch1bQ0.net
>>854
privateならその通り
publicならクラス外でも使える

867:デフォルトの名無しさん
22/11/20 16:55:21.88 MjJ+/fUP0.net
っていう構造にも関わらず
継承できないから
クラスを継承すると
enumで書いてる状態は
全部書き直し
ハイ、全部ちんぽでした!

868:デフォルトの名無しさん
22/11/20 16:57:27.98 qg1DZ5gK0.net
クラス内のクラスって継承で継承できるっけ?
何がともあれメリットがないことにはならないけれども。

869:デフォルトの名無しさん
22/11/20 17:05:37.84 MjJ+/fUP0.net
他のくだらん機能は
どうでもいいから
enumを継承できるようにしろよ
まあ、なくても
const intで頑張るからいいけど
まあ、その場合enumは一生使わないね

870:デフォルトの名無しさん
22/11/20 18:24:34.53 x1RY5Ndj0.net
当たり前だろ
クラス階層違うのに同じ名称を押し通す方がやばいわ

871:デフォルトの名無しさん
22/11/22 18:28:02.20 nAJcGQvG0.net
まあ名称はどうでもいいんだが
クラスAの状態を1~3でEnumで持ってて
クラスAを継承してクラスBを作った
クラスBの状態1~5をEnumでもつ
ここで、クラスA用のEnum継承して4~5を追加して1~5のEnum作りたい
ということはあるんじゃね

872:デフォルトの名無しさん
22/11/22 18:38:58.38 NaPYQccb0.net
enumはクラスの中に入れるなってことなのでは

873:デフォルトの名無しさん
22/11/22 18:54:32.20 rbB+zYjt0.net
enumの継承って、キャストの安全性が保証できなくなるんじゃない?

874:デフォルトの名無しさん
22/11/22 20:08:00.71 5norvibI0.net
継承と言うか列挙子の追加やね
確かにたまにやりたいと思うことはある
enum A {A1, A2, A3};
enum B: A {B1, B2};
みたいにできればいいのにね

875:デフォルトの名無しさん
22/11/22 20:11:29.21 tdt1l6wr0.net
んまあどうでもいいです…

876:デフォルトの名無しさん
22/11/22 20:43:08.15 F4U9XWNgd.net
>>863の場合はA型をB型にキャストするのは型安全で逆は非安全だから、通常の継承とは逆になってしまう
TypeScriptみたいに type B = A & enum { B1, B2 } ができるといいんだろうね

877:デフォルトの名無しさん
22/11/22 21:56:55.88 2vHKVf9I0.net
>>865
> type B = A & enum { B1, B2 }
なにか勘違いしてないか?
type Bは役に立たないぞ

878:デフォルトの名無しさん
22/11/22 21:58:13.24 s23xOfAqp.net
enum 張りなおせばよかばい

879:デフォルトの名無しさん
22/11/23 00:07:27.78 6lN/+0f80.net
>>863
enumB(1~5)を受け入れるところは当然enumA(1~3)も受け入れたいわけだが
これを認めると親クラスが子クラスに変換できることになる
>>865
せめてenumからenumへの暗黙変換定義できればなぁ
結局全部再定義して、int(元の数値)介して変換とか
それならもとからintずらずら並べたほうが良いかという

880:デフォルトの名無しさん
22/11/23 00:09:25.48 GHFjAPMfd.net
>>866
ああ、確かに間違いだな
&じゃなくて|だ

881:デフォルトの名無しさん
22/11/23 01:13:39.40 w1dmgQVP0.net
な、enumがクソなせいで
クラスの継承までクソになってるだろ
早くenumの継承できるようにしろよ
これができなくてどーすんのよ
って機能な実は

882:デフォルトの名無しさん
22/11/23 01:27:51.47 mCXmHJvQ0.net
まさに鬼の首を取ったよう

883:デフォルトの名無しさん
22/11/23 06:34:20.68 3geqF3we0.net
クラス内に書かなきゃいい

884:デフォルトの名無しさん
22/11/23 08:51:16.99 g5bfG+kA0.net
>>865,868
だから俺が欲しいのは継承じゃなくて列挙子の追加って言ってるだろ
enum B: A {B1, B2}; だと継承と間違えると言うなら別の構文でもいい
ベースの定義を引き継いで定義できればいい

885:デフォルトの名無しさん
22/11/23 11:31:55.12 hhL0Iwa90.net
enum継承を実装するならまずはstruct継承を実装しないといけない
そして値型の継承をバンバン行うC++ですらenum継承はサポートされてないから諦めるんだな
とは言え.net standard2以上ならソースジェネレーター使えるんだからC+


886:+のマクロ実装よりも堅牢にenum継承を叶えられるのがC#



887:デフォルトの名無しさん
22/11/23 12:09:29.79 A1o24w6O0.net
enumの継承なんて欲しいと思った事一度も無いわ

888:デフォルトの名無しさん
22/11/23 12:14:49.51 w1dmgQVP0.net
>>875
状態遷移をするものを書いたことないからだろ
書くと一発で不満が出る
仕方なくenumで定義したステータスを
const intに直す作業をすることになる

889:デフォルトの名無しさん
22/11/23 12:51:02.69 Gf+fcBNM0.net
変性的にどうなんかな?
基底enumを要求するところに派生enum渡して大丈夫?

890:デフォルトの名無しさん
22/11/23 13:10:21.66 HMCqpO+TM.net
>>876
それ設計大丈夫?
コード上のコンテキストで十分なものまで状態にしちゃってたりしない?

891:デフォルトの名無しさん
22/11/23 13:31:54.09 w1dmgQVP0.net
>>878
そんなの問題じゃねぇじゃん
適切な状態遷移のクラスを作って
継承するとenum使えないんだから

892:デフォルトの名無しさん
22/11/23 13:34:04.83 w1dmgQVP0.net
c#のenum周りを作ったやつは
状態遷移も作ったことがない
クソってだけ
まあ、言語開発に状態遷移なんて
いらんだろし
知らないのも無理はない
ってだけの話でしょ

893:デフォルトの名無しさん
22/11/23 13:34:28.41 63Gynabdd.net
元での状態A,B,C
派生1で状態A,B,C,D
派生2で状態A,B,C,E
派生3で状態A,B,C,D,E
基底に追記するだけで済みそうだけど
わざわざパスタを希望するか

894:デフォルトの名無しさん
22/11/23 13:41:09.59 GkNkmjh5M.net
まず継承出来る言語を挙げてくれないとどんな設計を求めてるのかわからん

895:デフォルトの名無しさん
22/11/23 13:44:23.94 w1dmgQVP0.net
>>882
状態遷移作ったことねぇやつは遠慮してくんない?

896:デフォルトの名無しさん
22/11/23 13:55:25.91 EqePYP8Fp.net
初心者質問スレでいつまでいきがってんだか
公式にいしゅー投げとけよ

897:デフォルトの名無しさん
22/11/23 14:04:53.83 Gf+fcBNM0.net
>>879
継承したクラスで遷移する状態を拡張するのはいいとして、そこにenumも派生して使おうってのが
設計として間違ってるんじゃね?

898:デフォルトの名無しさん
22/11/23 14:18:05.41 w1dmgQVP0.net
>>885
そしたら状態はどうやって定義するの?
もちろんenumではない
ステータス用の型が必要っていう意見ならわかる
現状enumしかないってだけ
statetype型なんてできたらそれはそれでよい
enumの拡張だと>>877の問題がヘタクソがたくさんいる職場では問題になりそう

899:デフォルトの名無しさん
22/11/23 14:28:50.84 eUenOEMN0.net
状態推移ってstate machine?
enumでやんの?

900:デフォルトの名無しさん
22/11/23 14:33:23.73 Gf+fcBNM0.net
>>886
enumを派生するんじゃなくて別のenumを使う。

901:デフォルトの名無しさん
22/11/23 14:42:16.47 fS1C7GFxa.net
アスペが大暴れしてるな

902:デフォルトの名無しさん
22/11/23 14:49:08.23 eUenOEMN0.net
もしかしてHierarchical Finite State Machinesをenumでやろうという話?
ちょっと見た事も聞いた事もないので興味あります

903:デフォルトの名無しさん
22/11/23 15:18:56.76 hhL0Iwa90.net
>>880
逆にどの言語ならあるんだい?
C++なんてC#で言うところのEnum.GetValuesやEnum.GetNamesすら標準サポート無しだぞ
テンプレート黒魔術使ってコンパイラに超負荷をかけて実装できなくもないが

904:デフォルトの名無しさん
22/11/23 15:22:25.48 hhL0Iwa90.net
さっきも言ったけどソースジェネレーター利用したらかなりトリッキーなこともコンパイルセーフに行えるんだから騒いでる暇あったら作れば良いのに

905:デフォルトの名無しさん
22/11/23 15:24:55.83 fS1C7GFxa.net
enumの使い方も知らないやつにソースジェネレータとか無茶言うなよ

906:デフォルトの名無しさん
22/11/23 15:45:58.22 Z18k9Xb90.net
状態の管理は >>881 じゃだめなのかな。
自分も昔は継承したがってたけど、結局 893 みたい基底に追記するようになったんだよね。
enum をシリアライズすると int 扱いになるから、複数のクラスで継承して使う場合に、ほかのクラスの enum 定義を把握しておかないと危ないケースがあるような気がするんだけど。

907:デフォルトの名無しさん
22/11/23 16:01:46.11 zunuLtNb0.net
enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ
enumの主な使いみちは値を限定することだ
要するにintの値を引数にしたいがその値の種類は3種類に限定したい、それ以外の値を渡そうとしたらコンパイルエラーにしたい、そういう時にenumを使う
その関数は引数として3種類しか渡らないことを保証されてるから無理やり他の値を渡した際には未定義動作になる
enumが継承できてポリモーフィズムが効くとすれば3種類の値しか来ない関数に普通に他の値を渡すことができてしまうだろw
なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上

908:デフォルトの名無しさん
22/11/23 16:34:31.63 Z18k9Xb90.net
すげー納得出来る理由が来た。w
感謝。

909:デフォルトの名無しさん
22/11/23 16:53:35.93 g5bfG+kA0.net
まだ継承とか言ってるアホが居るのかw
今までのenumの機能だと継承なんてできても意味ない
継承したいたらenumの各値にメソッド定義出来るようにするとかぐらいの機能追加しないとな

910:デフォルトの名無しさん
22/11/23 17:19:16.06 w1dmgQVP0.net
>>895
でもまさに状態遷移の状態の定義なんてenumの出番だと思うんだけど
ここでこいつ役に立たなかったらほか何に使えるのってぐらい
ちなみにc++でこの辺悩んだことないなぁと思ったら#defineで書いてたわ

911:デフォルトの名無しさん
22/11/23 17:26:51.44 LfUozzif0.net
enum A {A1, A2, A3};があるとして
enum B: A {B1, B2}; としたい理由は何なの?
単に記述量を減らしたいだけ?
AとBは違うデータドメインだから違うenumにするわけなので
enum B: {A1, A2, A3, B1, B2};として新しく定義するか
元のenum Aを拡張するものだと思うけど

912:デフォルトの名無しさん (ワッチョイ ff07-1oEr)
22/11/23 17:57:30.88 zunuLtNb0.net
>>898
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさい


913:でるからできないんだぞ



914:デフォルトの名無しさん (ワッチョイ ff07-1oEr)
22/11/23 18:00:35.30 zunuLtNb0.net
つか状態遷移で通じると思うところからやめろ
状態遷移の実装なんて何種類もあるわ
最終的に何がしたいのか言葉で説明できないやつは自分のやりたいことをプログラミング言語に直すことすらできんぞ
一般的なステートマシンでいいのか?

915:デフォルトの名無しさん (ワッチョイ e201-IwB9)
22/11/23 18:07:41.13 g5bfG+kA0.net
>>899
例えば標準はenum A {A1, A2, A3};の状態しかないけどオプションつけたらenum B: A {B1, B2};と増える
違うオプションつけたらenum C: A {C1, C2, C3, C4};と増えるとか

916:デフォルトの名無しさん (ワッチョイ e201-IwB9)
22/11/23 18:09:35.33 g5bfG+kA0.net
>>901
enumの話が状態遷移の状態を表すために使ってると分からないなら無理に話しに加わらなくていいぞ

917:デフォルトの名無しさん
22/11/23 18:32:51.60 zunuLtNb0.net
>>903
お前の言う状態遷移が何を指してるか言わないならお前の脳内かチラシの裏で処理しとけ
ステートマシンなら普通にインスタンスのパターンマッチングが使えるからそれがわからなきゃ無理してプログラミングの話に加わろうとするなよw

918:デフォルトの名無しさん
22/11/23 18:33:43.64 zunuLtNb0.net
多分switchが数値や文字列にしか使えないと思ってるド素人なんだろ?w

919:デフォルトの名無しさん
22/11/23 18:35:31.89 zunuLtNb0.net
switchが使いたいからenumなんだろ?w
おい正直に言ってみろよw

920:デフォルトの名無しさん
22/11/23 18:41:28.03 Gf+fcBNM0.net
なんか変なのが2人に増えた

921:デフォルトの名無しさん
22/11/23 18:47:35.71 eUenOEMN0.net
デザインパターンのステートマシンは登場しないような気がする

922:デフォルトの名無しさん
22/11/23 18:55:47.21 LfUozzif0.net
>>902
取りうる値すべて網羅するのがenumの存在意義
オプションがついたものが同じデータドメインなら
Aを拡張してenum A {A1, A2, A3, B1, B2, C1, … }とすべきでBやCは不要
異なるデータドメインとして扱いたいなら
enum A: {A1, A2, A3}; enum B: {A1, A2, A3, B1, B2}; enum C: {A1, A2, A3, C1, C2, C3, C4};とすべき
同じ名前のメンバーが存在しても異なる型で別のものだからそれぞれ定義するのは当たり前

923:デフォルトの名無しさん
22/11/23 19:03:20.20 v/FrQePk0.net
なんだろうフツーに連想配列じゃいかんの?

924:デフォルトの名無しさん
22/11/23 19:04:39.67 Gf+fcBNM0.net
typescriptその他の代数的データ型みたいに enum B = .A | B1 | B2 とやりたい気持ちはわかる。

925:デフォルトの名無しさん
22/11/23 19:05:08.39 w1dmgQVP0.net
>>909
それを言うならそもそも継承なんか使うなよって思う
まあ、コピペで貼ったほうが将来的に継承よりもうまくいってしまうケースはありまくったのも事実

926:デフォルトの名無しさん
22/11/23 19:07:17.68 LfUozzif0.net
>>911
TypeScriptでもenumでunion作ったりしないよ
できるけどやらない
やってる人がいるならモデリング方法が間違ってる

927:デフォルトの名無しさん
22/11/23 19:12:23.17 zunuLtNb0.net
状態遷移が何か良くわからずに最近知ったやつが唯一の状態遷移だと思ってるやつに何を言ってもむだだよ
教科書にenumを使えと書いてあったんだろうから

928:デフォルトの名無しさん
22/11/23 19:13:57.53 Gf+fcBNM0.net
ああすまん誤解させた。typescriptのenumを使う話じゃなくてtypeに読み替えてくれ。

929:デフォルトの名無しさん
22/11/23 19:28:19.96 g5bfG+kA0.net
>>904
enumの話だと言ってるのに...
お前パターンマッチング言いたいだけだろw

930:デフォルトの名無しさん
22/11/23 19:31:42.90 UGK9R6GJ0.net
現実のリサイクルにコストが3倍掛かるように
コード継承なんてフレームワーク利用者以外無意味だよ
自分で継承を考えながら書くことなんて時間の無駄でしかない
師匠とおだてられて弟子を育てて行くか、生涯わが道を探求していくかぐらい結果が違ってくる

931:デフォルトの名無しさん
22/11/23 19:31:45.39 g5bfG+kA0.net
>>909
> Aを拡張してenum A {A1, A2, A3, B1, B2, C1, … }とすべきでBやCは不要
Cしか変えないのに標準やBも再テストが必要になるよね
> 異なるデータドメインとして扱いたいなら
> enum A: {A1, A2, A3}; enum B: {A1, A2, A3, B1, B2}; enum C: {A1, A2, A3, C1, C2, C3, C4};とすべき
まあ君はそうすればいいんじゃね?

932:デフォルトの名無しさん
22/11/23 19:47:33.73 zunuLtNb0.net
>>916
enum使うのがおかしいとこれだけ何度も言われてるんだからどれだけボンクラでもそろそろ気づこうなw
お前の読んでる30年前の入門書が古いんだよw

933:デフォルトの名無しさん
22/11/23 19:52:20.51 6lN/+0f80.net
>>909
それenum Bで102種類登録しろって話だよな
まあそれが正しいのは分かるが
enum Bは完全にenum Aを内包していて100個は同じ
その状態でenum Aを拡張してenum Bを作りたいってのは間違ってるのか?
それともそういう状況でenumを使うのが間違ってると?

934:デフォルトの名無しさん
22/11/23 19:53:27.05 zunuLtNb0.net
>>920
間違ってると何度言われても聞く耳持たないなら聞くのやめたら?

935:デフォルトの名無しさん
22/11/23 19:54:47.89 Gf+fcBNM0.net
1. enum を継承できないのがおかしい。
2. enum を継承したいのがおかしい。
3. enum を使うのがおかしい。
1. と 3. がそれぞれ1人ずつだと思うのだが。

936:デフォルトの名無しさん
22/11/23 19:59:02.09 zunuLtNb0.net
>>922
enumを継承できるようにすると色々不具合が出るのは既に示した通り
だから継承したいやつがおかしいしできないのは当然
ここでenumを使うのも明らかに悪手でそれは本人も使いにくいと感じてるから薄々はわかってると思う
だけど薄々しかわからないのマジでアスペwww
使いにくい時点で気づこうぜw

937:デフォルトの名無しさん
22/11/23 20:06:27.70 Gf+fcBNM0.net
3. がお前さんひとりだと言ったつもりだったんだが。

938:デフォルトの名無しさん
22/11/23 20:08:52.61 zunuLtNb0.net
>>924
お前の言いたいことなんか知らんが、もっといい方法があるのに文法に文句を言いながらenumに固執するのはアホだと思わんか?w
おいおいこんな簡単な理屈がわかるやつが俺しかいないってどうなってんのこのスレ?w

939:デフォルトの名無しさん
22/11/23 20:16:59.47 g5bfG+kA0.net
>>924
相手すんな、最近継承とかパターンマッチング覚えたキッズなんだろ

940:デフォルトの名無しさん
22/11/23 20:18:28.43 zunuLtNb0.net
>>926
お前は早くenumの使い方覚えろよw
どう考えてもそこじゃないだろ
使いにくい時点で何か違うなーって思えよw

941:デフォルトの名無しさん
22/11/23 20:23:29.96 zunuLtNb0.net
intは小さい数値しか使えないから設計したやつは頭おかしいって発狂してるやついたらアスペかなって思うだろ?
俺から見たお前らってそんな感じになってるぞ
long教えてもらったなら覚えろよw

942:デフォルトの名無しさん
22/11/23 20:25:12.72 Gf+fcBNM0.net
>>925
お前さん一人だけ話がずれているんだと思うぞ。

943:デフォルトの名無しさん
22/11/23 20:27:17.57 KUj2Jy2fa.net
>>929
ズレてるのはお前の頭だよw
enumを状態遷移に使いたいという話で、継承できないから使えないといつまでも文句言ってるやつに教えてやってるだけだぞw
違う話したいなら気にせずしろよ
ヅラ直してから

944:デフォルトの名無しさん
22/11/23 20:34:56.61 eUenOEMN0.net
ステートパターンはポリモーフィズムを実現する方法だけど
ステートマシンは特にポリモーフィズムを実現してなくてもステートマシンになってしまうらしい
むしろポリモーフィズムのメリットがないのに状態遷移させるメリットが全く分からない

945:デフォルトの名無しさん
22/11/23 20:37:28.39 KUj2Jy2fa.net
ステートマシンかどうか聞いても状態遷移知らないのかの一点張りで答えないんだよなあw
いやマジでお前が状態遷移知らないのかとw
せめてその入門書のタイトルくらい書こうやw

946:デフォルトの名無しさん
22/11/23 20:39:42.92 Gf+fcBNM0.net
>enumを状態遷移に使いたいという話で、
状態を表すのに使う話なんだがこのへんがズレてるんだろうな。

947:デフォルトの名無しさん
22/11/23 20:42:35.56 wPRe5xEXd.net
>>922
4. 列挙子の追加がしたい
これが入ってくるから、さらにややこしい
こちらは臨機応変かなぁ

948:デフォルトの名無しさん
22/11/23 20:45:01.02 KUj2Jy2fa.net
>>933
だからそこに使うなって話だぞ
何度言えばわかるんだよ?
継承しなきゃ使えないとかいうイミフな条件ついてるのにどう使う気なんだそれ?w

949:デフォルトの名無しさん
22/11/23 21:04:41.04 Gf+fcBNM0.net
>>934
列挙子の追加というのがもともとやりたいことでそれは大前提だと思う。
そこに継承を使うのは無理筋だから他の手でやれということで。

950:デフォルトの名無しさん
22/11/23 21:17:19.11 KUj2Jy2fa.net
できないことを地面に転がってしたいしたいと泣きわめくのはプログラマーとは言えないな
ツールはそこに揃ってる
なら最適な方法をみつけるのがプログラマーの仕事だ
XY問題でいつまでも時間潰すのはただの無能
↓100回読んどけ
URLリンク(ja.wikipedia.org)

951:デフォルトの名無しさん
22/11/23 21:23:05.30 QiNG678ud.net
>>984
>>922の1番がこれよね
ID:w1dmgQVP0
4番はこっち
ID:g5bfG+kA0
継承ではなく追加したい、みたいな話
包含に近いか?

952:デフォルトの名無しさん
22/11/23 21:24:33.41 QiNG678ud.net
安価ミス、、、
>>936宛ね

953:デフォルトの名無しさん
22/11/23 21:48:33.88 +3bsKbsu0.net
状態遷移ってよく知らんけど
必要に迫られるごとに似たようなことはやってるな

954:デフォルトの名無しさん
22/11/23 21:52:28.30 +3bsKbsu0.net
複数のテーブル値関数を full outer join すると面白い結果が得られるぞ
C#からは脱線するが。
機会があれば業務適用しようと思ってる

955:デフォルトの名無しさん
22/11/23 22:10:16.15 Gf+fcBNM0.net
>>935
有限状態を表現するのにenumを使うのはごく普通のことでそれに文句つけてるのはお前さんだけだが?
代わりにいったい何を使えと言うんだろう?

956:デフォルトの名無しさん
22/11/23 22:36:14.78 Mu4NVEsX0.net
状態ごとの派生クラス作ったほうが楽じゃないの
enumを使い回そうってのがまずよくわかんないわ

957:デフォルトの名無しさん
22/11/23 22:51:15.68 v/FrQePk0.net
Statelessとか見たら腰抜かしそう

958:デフォルトの名無しさん
22/11/23 23:43:15.34 rAuww2HaM.net
こんな機能があれば便利なのにってのは分からんでも無いけど
他の言語も含めた実装状況見れば少数派がデカい声出してるだけでしょ

959:デフォルトの名無しさん
22/11/24 00:18:19.16 R18LG1aZ0.net
>>942
何をってもう何度も書いただろw
enumを使うことでうまくいかないのが明白になったなら固執するのがアホ
オブジェクトやクラスはハッシュコード持ってるからenumでなくともswitchで処理できるし継承もできる
状態遷移状態遷移言ってるが教科書コピペするんじゃなく何をどうしたいのかを見据えてそれを実現しなきゃいけないぞw

960:デフォルトの名無しさん
22/11/24 00:21:21.14 6EroDtbH0.net
>>923
「継承」できないしするのはおかしいのは分かったから
enumを「拡張」したいって思う
拡張したいって用途にenumを使う
どっちがおかしいって?
その理由が単にenumがそうなってないってなら、そうあるべきだって議論はありえると思うが
>>925
別に俺は固執する気はないので、そういうことはできないってならできないで良いんだが
もっといい方法って具体的には?

961:デフォルトの名無しさん
22/11/24 00:24:41.88 R18LG1aZ0.net
例えばステートマシンのノードの一つをカーソルで参照するだけでカレントステートを表現できるしカーソルを動かせばそれはもう状態遷移だろ
ノードをオブジェクトにすれば種類によって違うプロパティやメソッドも持てる
ここにenumの入る余地などない
俺が何を言ってるかわからんとすればお前の勉強不足だから伏して教えを請え

962:デフォルトの名無しさん
22/11/24 00:54:01.50 uAP2KDnH0.net
enumて要素を限定するためのもんでしょ
拡張できたらぐちゃぐちゃじゃん
拡張した場合また別の名前なり必要で別ものになるでしょ

963:デフォルトの名無しさん
22/11/24 06:12:20.08 0c/PVttN0.net
>>949
ぐちゃぐちゃになるかどうかは使い方次第

964:デフォルトの名無しさん
22/11/24 11:04:40.36 Qxz+vdGfp.net
クラス内でしか意味がないものを他クラスで判断に使う事自体が問題じゃね?

965:デフォルトの名無しさん
22/11/24 12:05:41.62 I9DGq0SZa.net
ひょっとしてと思って「unity 状態」でググッたら質問者のやりたいことがわかったわw
キャラクタを委譲じゃなく継承させる糞コードでなんちゃってステートパターンしたいんだなw
継承したキャラクタは行動できるパターンが増えるから状態もそれによって増やしたいということだろ
キャラクタを継承させるという糞仕様から直すのが正解だがそれをしたくないならenumじゃなくクラス使えよ
その状態だけ継承させればキャラクタの継承要らないんじゃねというところに気づけばみんなが何を言ってたかわかるようになるかもしれんぞ

966:.NET MAUI HighSchool
22/11/24 12:19:13.38 DPMQyp0E0.net
Unityってクラスないの?

967:デフォルトの名無しさん
22/11/24 12:54:31.34 P04N2b5w0.net
継承とか拡張とは違うけど
enum StandardColor: {Red, Green, Blue}
enum ExtendedColor: {Teal, Turquoise}
とあった時にStandardColorとExtendedColorはそれぞれ個別の用途でも使うし
両方混ぜた集合からどちらか一方だけ選択する用途でも使いたいというのは理解できる
この場合はC#では言語的にはまだサポートされてない機能だから
サードパーティのライブラリを使うか自作するか

968:デフォルトの名無しさん
22/11/24 17:55:35.91 88NBfQl90.net
Unityでもポリモーフィズムを実現していればクラスのカプセル化が効くから
Stateで状態が切り替わる振る舞いは同じでもサブクラスで提供される機能を変えられる
ポリモーフィズムの実現が主題であってenumに依存するとかしないとかどうでもいい事な気がする

969:デフォルトの名無しさん
22/11/24 18:42:01.91 EbMeVnega.net
enumはポリモーフィズムに使うものじゃねえんだって話をしてるんだよw

970:デフォルトの名無しさん
22/11/24 19:12:02.78 88NBfQl90.net
仕様未使用はどうでもいいって言ってるのを何故復唱する必要があるのか?

971:デフォルトの名無しさん
22/11/24 19:17:15.44 6EroDtbH0.net
で、結局enumの使いどころはどこなんだ?

972:デフォルトの名無しさん
22/11/24 19:20:15.08 NYxgvrZS0.net
人生で数々のenumに触れてきて今まで継承したいと思うenumに遭遇したことがない
私は思う
不完全なenumはそれ自体がバグなのだと

973:デフォルトの名無しさん
22/11/24 19:25:58.70 88NBfQl90.net
多次元配列やジャグ配列で事足りるからenumなんぞいらんでしょ

974:デフォルトの名無しさん
22/11/24 19:26:08.06 1uxs9LdZ0.net
使えるものを使うだけじゃんよ。

975:デフォルトの名無しさん
22/11/24 19:35:14.11 JYVIn9dZa.net
使うべきところでな
enumの使い方は既に教えた
そこじゃないのも何度も言った
これでわからないボンクラは何やってもだめ

976:デフォルトの名無しさん
22/11/24 19:38:42.34 88NBfQl90.net
色々混ざってる糖質がいろんな人間が言ったことを勝手に混ぜて
訳の分からない事を言ってるのか?

977:デフォルトの名無しさん
22/11/24 19:45:03.01 JYVIn9dZa.net
色んな糖質がバカなことばかり言ってるのに区別する必要あるか?w

978:デフォルトの名無しさん
22/11/24 19:46:38.20 JYVIn9dZa.net
見りゃわかるが俺はバカなこと言ったやつをバカにしてるだけだからそれにカチンとくるやつは同じバカだぞ

979:デフォルトの名無しさん
22/11/24 19:48:18.80 88NBfQl90.net
最初に質問した奴はステートマシンとステートパターンの区別もポリモーフィズムも知らない奴だったわけだが
何でも同じに見えるというならそうなのだろう 知った事ではないし興味すらもない
勝手に吠えてればいい

980:デフォルトの名無しさん
22/11/24 20:22:54.20 JYVIn9dZa.net
enumだと都合が悪いと質問者すら発狂してるのにいつまでもそれに固執するようなのは同じレベルでしかないだろw
都合が悪いなら使ったらだめと気づこうや

981:デフォルトの名無しさん
22/11/24 20:28:32.70 88NBfQl90.net
stateにenumは使わなくてもStatePatternは作れるし元々enumは必須ですらない
そもそもポリモーフィズムのメリットが分からない奴が面白い勘違いしてるだけだろ

982:デフォルトの名無しさん
22/11/24 20:44:59.86 x2utmnLfp.net
サボらずに変換メソッド作る

983:デフォルトの名無しさん
22/11/24 20:47:40.88 0c/PVttN0.net
ステートパターンを覚えたてのキッズ同士の争いはよそでやってくれw

984:デフォルトの名無しさん
22/11/25 09:34:35.22 acUkwbrC0.net
おまいらどんだけenumでスレ消費してんだよ

985:.NET MAUI HighSchool
22/11/25 12:13:43.21 RaC0ZQGe0.net
モバイルSuicaにもReactiveUIとか使われてて
結構Rxってもう標準になりつつあるな
これ産み出したC#すごい!

986:.NET MAUI HighSchool
22/11/25 12:20:00.08 RaC0ZQGe0.net
>>4
新スレ建てようとしたけど改行が多すぎるとかで無理だった…

987:デフォルトの名無しさん
22/11/25 13:18:08.44 HZEumDr50.net
立てといた
ふらっと C#,C♯,C#(初心者用) Part157
スレリンク(tech板)
頭のextend~は念のため1行増やしておいた

988:デフォルトの名無しさん
22/11/25 18:03:50.34 b6uMxREG0.net
おつかれー。
と言いつつ埋め。

989:.NET MAUI HighSchool
22/11/25 20:24:56.18 SQhAXb/D0.net
>>974
サンキュー

990:デフォルトの名無しさん
22/11/25 20:27:00.27 Ex0f5l5+M.net
列挙型の元祖はPascal

991:.NET MAUI HighSchool
22/11/26 08:34:50.54 Ja07f46G0.net
C#isGod

992:デフォルトの名無しさん
22/11/27 23:14:07.98 MIxI7txJ0.net
ume

993:デフォルトの名無しさん
22/11/28 21:44:09.15 vwJLsOsN0.net
bool isGod = true;

994:デフォルトの名無しさん
22/11/28 22:44:48.65 SzIAkLME0.net
うめうめ

995:デフォルトの名無しさん
22/11/28 23:09:55.94 ozyLKgmt0.net
梅火星

996:デフォルトの名無しさん
22/12/09 19:49:47.35 KigkNyOs0.net
いい加減埋めようよ。

997:デフォルトの名無しさん
22/12/09 19:52:30.95 lbVfgM7Sp.net
埋め屋敷

998:デフォルトの名無しさん
22/12/09 20:08:40.11 xaxCUQ87a.net
埋めなくていいよ
次スレもいらん

999:デフォルトの名無しさん
22/12/09 20:10:07.88 8ML1skqU0.net
もッス

1000:デフォルトの名無しさん
22/12/09 20:14:42.85 LL4MqSod0.net
誰も必要としてなくて草

1001:デフォルトの名無しさん
22/12/09 20:16:37.36 LL4MqSod0.net
NullReferenceException

1002:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 82日 5時間 37分 8秒

1003:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch