C#, C♯, C#相談室 Part96
レス数が950を超えています。1000を超えると書き込みができなくなります。
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured コンパイル時間が気にならないならそうしたらいいんじゃね >>850
> デバッグをする際にも「コードの最適化」のチェックをONにして
> ビルドを行い、デバッグをしていったほうが良いのではないかと思っています。
そう思うなら1回やってみ
てか、まずは自分でやってみる癖つけないと伸びないぞ C#の最適化は可愛いレベルだからそこまで気にしなくてもとは思う
c++なんて最適化のレベルを上げるとmemset()でメモリクリアしようとしても勝手にmemset()自体が消されてしまう
しかもその判定がおかしい
これは最適化なのかどうかすら怪しい
セキュリティ上問題ある場合は特定の命令を使って消さなければならないとか普通じゃない >>853
> しかもその判定がおかしい
それお前のコードがおかしいだけだろ... あまりにもクソコードの場合、中間言語をILSpyで逆コンパイルしたほうが見やすくなるしね >>848
わざわざ試してもらってありがとうございます。
ドボンにも項目がなさそうなところを見ると、ひとまず無理ということでしょうかね。
>>849
Delphi なんかだと、Tracking ってプロパティがあって制御できるようになってるんですがね。
そもそも無理のない配置にするなどして、あまりそういったデザインにはしないんでしょうかね。
必須の動作というわけでもないので、デザインの変更も含めてもう少し検討してみようと思います。 開発では最適化しない。
最適化されたら、break point の所のコードが、最適化されてなくなってしまうかもw
デバッグ中に、コードも変更できないだろうし 習得速度が遅いのだがどうしたらいいの(´;ω;`)
頭悪いからね
unityだけどね(´;ω;`) >>850
Visual Studioのデバッガ機能(デバッグありで実行)を使ってみればすぐわかるんだが
1行ずつ実行したり変数の内容見れたりする機能がある。
最適化されると処理の順番が入れ替わるわ変数がそもそも消えるわでデバッガが使い物にならんくなる >>859
マジレスすると、コツをつかむまではひたすら頑張るしかしょうがない。
いい師匠に巡り合えるといいんだが、理解するときのイメージって人それぞれなんで
難しいね。 847 ですが、英語情報あたったらありました。
Form の Load とかで
Scroll += From1_Scroll;
としておいて、
private void From1_Scroll(object sender, ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
HorizontalScroll.Value = e.NewValue;
}
else if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
{
VerticalScroll.Value = e.NewValue;
}
}
でそれらしい動きになる。
これぐらいの情報ならドボンにあってもよさそうなのにな。 >852
>860
アドバイスありがとうございます。
実際にやってみます。
>てか、まずは自分でやってみる癖つけないと伸びないぞ
身に染みるお言葉ありがとうございます。 >>861
はい、1日1つの課題くらいを作って、地道にやります
完成を目指します >>857
前提が間違っていて試した意味がなかったようだ、申し訳ない
RichTextBoxやDataGridViewはコントロールでスクロールバーを持っていて移動が即反映され、PictureBoxはスクロールバーを持っていないのでフォームのスクロールバーに依存するだけだった
>>862
有用な情報乙 On.NETってすげぇよな
Udemyレベルの教材がタダだぞ
今You Tubeの翻訳機能死んでるから治ったら見る >>867
たまに見てる
RegexMatchソフト使ってるよ >>867
だって検索してると出てくるし、よくまとまってるんだもんよ。
なんかいかんの? 今となっては古い方法ばかり充実しててもなぁ
全部が全部古い(もっと新しい方法がある)訳じゃないけど、初心者にはその見極めが出来ないから勧めない方が良い ネット上の情報も、更新日の新しいものだったらいいかっていうと、古いものを孫引きしてるだけだったりすることもあるからなぁ 正直なところ個人的には、初心者はネット上で済まさずにちゃんと本買った方が良いと思う
なんていうと、どの本がいいのかでまたひと悶着だがw 第5版出たとこだし独習C#でいいんじゃね?
プログラミング自体初心者なら新・標準プログラマーズライブラリも悪くないと思う
どっちも細かい部分で説明気になる所はあるが 難しい本だな
個人的には作って覚える系の本がいいと思う
unityでゲームみたいな本の方がやる気が出るんじゃないだろうか? 最初の一冊は基本概念と用語定義の正確性に特化した体系的な学習ができるやつがいいと思う
それが身につけば、ネットの記事も参考にできるようになるからな(参考にして良いいかどうかが判断できるようになる)
俺は独習C#使った
それなりに良かったと思うよ >>866
On,NETって、もしかして
https://www.youtube.com/watch?v=00enYc3V84A&list=PLdo4fOcmZ0oVlZCosDDwS9fkVtrLYxGt6
の事?
チラッと冒頭だけ動画見てみたが、機械翻訳が必要な程難しい表現は無かったけど。
YouTubeで自動音声認識で文字起こしされたものを機械翻訳したのは、音声認識の段階で高確率で間違ってるから、余計分からなくなるだけ。
慣れない内は難しいかもしれないが、これくらいの英語なら、翻訳無しで聞き取れるだろ。
「ファスタボー」 → 「first of all」
「レイボー」 → 「label」
「ウィーガナトーカバウッ」 → 「we are going to talk about」
みたいに、カタカナ英語ばかり聞いてると、最初の内は聞き取るのが難しいとは思うけどな。
Apple公式サイトの動画なら、ちゃんと字幕起こしされてるから、そういうので英語字幕を表示させて英語のまま直接聞き取る練習はした方がいい。 横からだけど独習C#、幸いにも近くの図書館にあったから読んでくる
ありがとう アルゴリズムは頭の中だけでなく、視覚化が必要ですか?
頭がぐちゃぐちゃになるんすよ
フローチャートみたいなのは少し苦手なんですが 俺はコーディングする前はいつも流れを文章化して書き出してる
白紙に文字と矢印だけの簡易フローチャートみたいな感じ データ構造じゃなくフローの話をしてるなら普通に関数分けしながら頭を整理すればいいじゃん
ローカル関数を使えば簡単に論理ツリーが構築できるからアイデアプロセッサ的な使い方もできる んー、じゃあ全ての機能を関数化して名前や役割を与える、ということですか?
それが図と似たようなものと 処理のまとまりとはっきり認識できるものは名前をつけるべき
他の人や数年後の自分のためにいちいち図を残しとくわけにはいかんだろ ループを書くときも外側から順に書くやつ多いよな
あれは一番内側から書くんだよ
その処理を行うにはどういう情報が必要かを整理してそれを引数にする
処理をした結果どういう出力が欲しいのかを整理してそれを戻り値(必要ならタプル)とする
そうすれば関数が一つできあがる
あとはその関数に引数を与えて呼び出すだけだからループなりLINQなりメモ化再帰なり木探索なり好きなのを選べばいい 今どきはコメント書けば適当なループ処理までAIが補完してくれるぞ >>890
そもそもそんな行き当たりばったりでコード書いてる時点で目糞鼻糞じゃない?
関数なんて最初に名前と入出力を決めたら中身は自ずと決まる >>892
お前FizzBuzzを関数分けせず書くタイプだろ
後で修正が必要になったら全部読んでごっそり書き換えるわけだ
今は構造化のし方を書いてるがそれを設計段階でやるか実装時にやるかはその時の状況次第だ
アジャイルだとざっくり設計なんてザラにある 関数分けという発想で行くと間違うというのはある
必要なもの集めて組み立てる感じ FizzBuzzを関数に分けたりしたら、文字数が増えちゃうじゃん 文字数増えて何の問題がある?
全部mainに突っ込むのを効率化と思ってるやつもいるがそんなもの計算量の少ないアルゴリズムを選んだら軽く吹っ飛ぶぞ >>883
ズバリ答えましょう
アルゴリズム実装に必要なものはユニットテストです ReactiveXでFizzBuzz作りたい
3が流れてきたらFizzって言うsubscribeと5が流れてきたらBuzzっていうsubscribeと15が流れてきたらFizzBuzzっていうsubscribeをつくって1から100に順に上がっていくオブザーバブルプロパティを作って発行し合う >>892
逆
入出力さえ正しいっぽければ中身なんてどうだっていい
それゆえのAIブームでもある >>897
ユニットテストとは、全部関数化するということですか? たけのこなんとかってYou Tubeチャンネル再生数少ないけどかなりためになるよな
https://youtube.com/@user-el9do7sq8l アマゾン見たらmaui本が1月14日発売だけど、年末出版には間に合わんかったんか?年明けは勉強時間取れる人少ないと思うが。 mauiに興味を持てるのはごく一部の異端者だけだからどちらでもいいだろ WinFormsにだけ注力してりゃいいのにバカなMicrosoft それはないけど同じところをずっと行ったり来たりしてるね
10年ぐらい停滞しっぱなし
net frameworkを.net coreに書き直し
winforms WPFを.net core用に書き直し
対応するためにVSを書き直し
reunionしてUWPのAPIを使うために書き直し
xamarinをMAUIにして書き直し
今後monoも置き換えするんだろうけど結局停滞してるだけでとてつもない開発リソースを浪費してる 停滞してるか?
めちゃくちゃ便利になってるんだが…。 停滞してるのはエコシステムではなく勉強してない自分達だったというオチはこの業界ではよくある話
身近なC#ディスりおじさんに詳しく話を聞いたらC# 1.0〜2.0ぐらいの知識で止まってたなんてことがよくあった
まあこれに関してはJava 7の印象でいまだにJavaが大嫌いな自分にも当てはまるんであまり言えんけど 便利になったのはWPFまでだな
それ以降のUIが迷走を続けている
MAUIはあの完成度でよくリリースする気になったもんだと思うわ 迷走だよ
GPSやセンサー類のAPIはUWPにだけ実装とか迷走だろ
それを今統合も出来ずに上位にWinUI3のガワだけかぶせてる
実質WinUI3はWPFの部分をwin32とか使ってc++で置き直してUWPを中に含めてるだけ 非GUI部分のAPIをUWPやwinformsやWPFから切り離せていなかったのが一番の問題 そしてその問題をWindows App SDKで解決したと var rst = src.Select(c =>
if(c == 'a') c = '1';
else if(c == 'b') c = '2';
else {そのまま}
);
とある文字列に対してSelectで条件分岐の操作ってできるんでしょうか?
このような操作はエラー出てしまいます。
for文使う意外でLinqで可能ですか? var rst = src.Select(c => {
if(c == 'a') c = '1';
else if(c == 'b') c = '2';
else {そのまま}
}); Selectは、 TResult Func(TSource c); 相当の関数を求めてる。
1文で書けないラムダは{}で囲ってreturnする必要がある。
var rst = src.Select(c => {
if(c == 'a') return '1';
else if(c == 'b') return '2';
else {return c;}
});
条件がそこそこ複雑になるから関数化した方が読みやすくなるけどね
static char func(char c){
if(c == 'a') return '1';
else if(c == 'b') return '2';
else {return c;}
}
var rst = src.Select(func); お前ら大丈夫か?
落ち着け
とある文字列と書いてあるのを意図的に無視してんのか? 追加情報
三項演算子を二回使うと二回分の変換を式で表せる
c++なんかでは多用されるテクニック
実際に使うとなると
string.Replace ごめんごめん
すげーまちがえてんな
3項演算子二重で使って3つの値を出せる式になる
それと古のテクニックを使う方法もあるけどもう寝る時間だな… お前こそ落ち着けよ...
とある文字列 = src
だろ >>918-924
こんな感じかな?知らんけど
string src = "beef steak";
var rst = src.Select(c => c == 'a' ? '1' : (c == 'b' ? '2' : c)); string rst = src;
rst = rst.Replace('a', '1').Replace('b', '2');
でもええんちゃう?知らんけど 今風に書くなら
var rst = src.Select(c => c switch {
'a' => '1',
'b' => '2',
_ => c,
});
としておきたいかな 多重に三項演算子使うぐらいならswitch式の方がマシじゃね?
var rst = src.Select(c => c switch{ 'a' => '1', 'b' => '2', _ => c }); 皆様分かりにくい質問だったのにありがとうございます😭 もちろんReplaceでいいんですけどSelectの理解のために知りたかったです
>>920分かりやすかったです。 文と式の区別ついてないしelseだけ変なブロックついてるけどなw MSストアアプリをリリースしてみたいけど難読化できるか気になっている。
中間言語(IL)のコードだと簡単にリバースエンジニアリングされてしまいそうで不安。
ストアアプリは中間言語ではないファイルにストア側で変換されますか?
自分で書くコードはC#です。
あと.NET7だとネイティブでビルドできるらしいけど.NET7で開発すると、
ローカルもストアアプリもネイティブコードで生成されるんでしょうか? >>939
難易度がけた違いでしょう?
機械語からリーバスエンジニアリングできるような人なら
ゼロから自分で書いたほうが速いはず。
ILだとC#初心者でもロジック理解できちゃうしパクリアプリも作られてしまう。 どうせ完璧な対策は無理だし、ConfuserEXで強めに難読化しておくのじゃ駄目かな C#のバイナリは中身もMSILだし難読化してもある程度ソースは分かる
ILSpy等で難読化した後のファイルを見てみれば分かるよ >>943
Regex.Replaceのオーバーロードにラムダ式を取るやつがあるから引数をキーにしてDictionaryから置換先を取り出せばいい >>938
今のところネイティブコード作れるのはコンソールだけってのをどっかで見た記憶がある
違ってたらごめん >>942
ストアアプリも読める?読めたらまずくない? 半分自己解決。UWPはnative codeになるようだ
非UWPはまだわからん。
.NET nativeのおかげだな。.NET7では全アプリ対応になってるのかも
https://microsoft.github.io/react-native-windows/docs/native-code
UWP apps written in C# or other managed languages submitted to the store must be built using the .NET Native toolchain. This is the default when building C# apps in Release mode, but not in Debug, so apps built in Debug will be rejected by the Store. native codeじゃないと商用アプリリリースする気にならないわ
認証まわりとかコード見られたくない
.NET7でもしWPFとかもnative codeふつうにはけるのなら
c#人気復活する気がする レス数が950を超えています。1000を超えると書き込みができなくなります。