C#, C♯, C#相談室 Part95
レス数が1000を超えています。これ以上書き込みはできません。
>>451
解決できたのならこっちもほっとしたよw
報告お疲れ様です public class MyClass<T> where T : MyClass<T>
{
・・・
}
こんなコードを見たのですが、意味を教えて下さい。 「ジェネリックのwhere」はともかく、
「作れないクラスの作り方」は気になるなw C#と.NET Frameworkの標準ライブラリだけでFAX処理ってできます? 外部ネットワークに繋がる環境で動かす前提とは限らないしなぁ FAXどころかプリンタすらC#使ってやるのは不安になるなあ
趣味レベルでちょっとしたツール作る分には楽でいいんだけど ソースコード読めば、C#ってこんなもんかって安心できるぞ >>465
何のソースコードを読むんだよ
WinAPIやCOM使ってできることならなんでもOKって知っていればどうでもいい >>466
何のソースってC#のライブラリのソースだよ
>WinAPIやCOM使ってできることならなんでもOKって知っていればどうでもいい
だったらなんで不安になるんだ? 芥川龍之介の念波、我が身に降臨せり
「何か僕の将来に対する唯ぼんやりとした不安である」 >>469
不安とか言ってないでさっさと邪宗門の続き書いて この板には羅生門に登場するような地獄の住人・魑魅魍魎が跋扈してるな LINQのWhereで
匿名関数に渡されるエンティティを他のメソッドに渡したりするとOneToManyを使う条件が動かない
これに気付かず小一時間無駄にした
エンティティの代わりにIQueryableを渡すことにした
こっちの方が書きやすいし条件を再利用出来る LINQというか
Entity Framework Coreのデータベースにクエリーする時のLINQ C#だと、C++同じように書いてもずっと遅くなることがある。
それにメモリを多く食う傾向も。GCはどのタイミングではいるか分からないから、
スクロールの途中で入った場合は、まるでPC-8801のBASICで書いたプログラム
のように素人っぽいアプリになる。C++が使える人が使うのは推奨しない。 C#はC++と違って速さではなく信頼性に重きを置いてるから仕方ないね
インスタンスはともかくアンマネージリソースは明示的に破棄するとか
ファイナライザ任せにしない等の言語に合わせた組み方をする他ない C++経験者でC#のパフォーマンスが落ちたり不安定になる人は、そもそもC++自体のスキルが低いと思う
関数ポインタとか仮想関数とかちゃんと使えないんじゃないかな >>478
unsafe突入コストはどうにもならん。そんなことも分からないのはC#を碌に使ってないから。 >>475
ちょっと工夫すれば避けられる場合も多いし、C++に戻りたくは無いなぁ。
どうにもならない場合はスピードが必要な部分だけC++にするけど。 >>479
unsafeはオーバーヘッド無いぞ
アンマネージコードとごっちゃになってるのかな?
C#を碌に使ってる人の言うことは違うね C#のunsafeは使い勝手が悪いから使わないな
デバイス制御とかでポインタが必要ならC++でDLL化して、C#側はDllImportするだけだし
C++をちゃんと分かっている人なら大抵参照渡しで済ませるから、ポインタ使う必要ないよね
あとはWindowsAPIのDLLをそのままC#側にImportする手もある
C++の関数コールバックもC#側のdelegateで問題なく使える unsafeは不当に忌避されすぎだと思う
IntPtrとかいう実質void*を駆使したコードなんて、unsafeよりよっぽど危険だわ
ちょうど479のように、unsafeコード=アンマネージコードという誤解も未だに根強いし >>481
意味すら分からないレベルか。馬鹿は黙ってたほうがいい。 >>483
unsafe突入コスト → unsafeコード=アンマネージコード
おまえもか。脳みそに蛆でも沸いてるかと思うレベルの理解力。ほんと馬鹿は黙ってたほうがいい。 頭おかしい御仁、こっちにも湧いてござるなw
無益だから相手にしない方がいいよ 「unsafe突入」がオレオレ定義で具体的にどこかを示さず逃亡するに一票 > unsafeはオーバーヘッド無いぞ
> unsafeコード=アンマネージコードという誤解
こんな馬鹿レスしたあとにくだらない煽りか。低スキルにもほどがあるな。>>486 必死にID変えて連投してるからいつもの知ったか馬鹿だな。
相手にした俺が馬鹿だったわ。 C++で内部のメモリ構造を考えていない人がC#を使うと
パフォーマンス落ちて不安定なコードになりやすい、っていう話なのに
なんでC#でunsafe使う前提になっているんだろう? >>490
内部のメモリ構造てw
お前c++使えんやろ何の勘違いしとるんやw >>478
自分はC++の仮想関数も関数ポインタも難なく使ってる。そして、C#は自分では使った
事が無い。でも、他人が作った.Net製のアプリを見て余りの遅さに.Netが普及しては
困ると思った。Vectorに登録されてるアマチュアのC/C++のプログラムでも見たことがない
ような遅さの.Netのプログラムをハードウェアメーカーが付属品として付けて来る。プロ
なのに。 そりゃ単に作った奴の所為じゃないか…プロなんて生業というだけで
プログラマーと呼べない連中など腐るほど居るし、門戸が広ければ蔓延るであろう
JITコンパイルとか境界チェックとかコードセキュリティとかオーバーヘッドは有るけどさ XNAでゲーム作ってキャラクター10万個くらい出してもほとんど処理落ちしなかったのに
まともにコード書いた普通のソフトでそうそう遅くなるとは思えん .Netは間に色々入るのでCPUキャッシュの効きが悪くなり、キャッシュの多いCPUでは
C++のNative Binaryの2.5倍程度の遅さで済んでもキャッシュの少ないCPUでは急激に
遅くなる可能性があるかも。キャッシュミスがあると、数千クロックのオーバーヘッドが
生じるので、C++の1000倍くらい遅くなる可能性がある。 ロクに使ったこともない人がドヤ顔で解説とかシビレル [間違い(または嘘つき)記事発見]
以下のリンク先の速度比較で、C# では言語Nativeな配列を使っているのに、
C++では、std::unique_ptr<> を使ってしまっている。そもそも、C/C++は、
高級アセンブラみたいなものだから、書き方を間違わない限りは、C#より遅くなる
はずがない。
「C#がC++より高速になった?」:
https://qiita.com/Chironian/items/e8c9f0147669f941936a
C#
static void setLargeArrayManaged1()
{
var aArray = new byte[kCountLai];
・・・
C++
void setLargeArray()
{
std::unique_ptr<byte[]> aArray(new byte[kCountLai]);
・・・
公平に比較したいなら、以下のようにすれば良いだけ。こっちの方がC#と
ソースレベルでも似ている。この著者は馬鹿としか言いようがない:
C++
void setLargeArray()
{
byte *aArray = new byte[kCountLai];
・・・
delete [] aArray; LINQは便利だけど落とし穴も多い
でも便利過ぎて手放せない Linqは裏側の動作までイメージ出来ないと簡単ゴミ作れちゃうのよねん LINQだけでググるとこれが出てきてしまう。
LinQ(リンク)は日本の福岡県福岡市を拠点に活動しているローカルアイドルグループ。
この項目では、女性アイドルのローカルグループ LinQについて説明しています。
統合言語クエリ LINQについては「統合言語クエリ」を、その他のLINQについては「リンク」をご覧ください。 C#が遅くないとか言ってる奴に限ってアセンブラ経験がない。C#信者はVB厨とJava厨と同じレベル。 設計思想が異なる対象まで遅いだの速いだの言語価値はそれだけかよ
ソースが同じなら処理も同じなんて考えるのが居たらdでもない事だ
C#やILのコンパイラに瑕疵があるのなら然るべき所へ報告すれば良い >>505
AWS Lambda使ったことないと誤解を生みそうな記事だなこれ
Lambdaのランタイムのオーバーヘッドを測ってるだけで、実質的なコードの実行時間はほとんど関係ないよこれ プログラムを書いていてちょっと迷ってると、VisualStudioがメソッド等について説明の吹き出しみたいなのを出してくれるけどさあ
あそこに出てくる説明の文章部分ってどうやって作るの? さすがにアセンブラ経験なしでここで相談に答える馬鹿はいないだろ。ILだってまともに読めないだろうし。 どうしたの?一昨日のことでまだ言いたいことあった?ガイジ >>509
メソッドの1つ手前の行でスラッシュ三回打ってワンと言え >>509
シフト押しながら7を三回押したらでてくるやつの話? >>509に対する回答が>>510と>>515以外全く意味が分からない
>>515が正解だと思うけど、どっちにしてもスレ違いだし 1レスに3個以上安価入れるのは行儀が悪いってママに叱られなかった? キチガイが安価多用するからキチガイっぼく見えるよというお話 タグが増えると容量が増えてgzip圧縮に対応してへんブラウザやとしんどいねん
VBコンポーネント使ってるやつとかな >>523の説明を聞いて納得。
>>520は頭と性格が悪そうだと思った。 規模が大きくなるとただでさえVS重くなるのにReSharper有効にしてると耐えられないレベルになる
VSCodeのC#サポートがもうちょっと賢くなれば移行したい >>526
2017で軽くなるかもと期待したが、うpデートする度に重くなっていくような。
Sharp >>527
大きなソリューションの読み込みはUpdateごとに確実に速くなってるけどね forループとEnumerable.Rangeでループするのどっちが速いの? 理屈的にはmovenextとget_Currentの呼び出しコスト分遅いんだっけか? >>530
この理由で頑なにfor使っている人居るけど、100万回でms単位の差で選ぶとか阿呆としか思えない 業務系c#開発でgitって使えるもん?
開発規模が社内だけなら面倒なだけな気がするんだけど、シェア考えると今からsvnは無い気もして GitHubなら賛否あるけど、Gitなら迷わず使えばよくね ギョーミーは50万年くらい遅れてそうでいいよな
まだ旧人類やってても優秀な方にランキングされるようだぜ 業務系は下請けに出さないとgitサーバーも立てられないからな
世界的に有名な大企業でもまじでそんな感じ いまの若い子はSVNの使い方知らないからやめといたほうがいいよ
Gitにしか出来ないと思い込んでるから何も努力しなくなってるしな
Git一択だわ 若い人は○○系の話って大抵若い人がそれを必要とする時点で絶滅しかかってるんだから知らなくて当たり前なんだよね
だからむしろ知ってた時に驚くのが普通なのになぜか知らないことに驚くというのが意味不明 中小業務系とか素人スタートが数年居ればベテラン扱い
gitどころかバージョン管理?なにそれおいしいの?状態 ソルーションZIP固め
正直、個人プレーならこれが一番わかりやすくて安心 >>533
ゆとり馬鹿はほんと数学ができないんだな。 >>548
>、100万回でms単位の差で選ぶとか阿呆としか思えない
おまえも仕事したことない無職なんだろうけど、リアルな話、
こんな馬鹿が一人でも混じってたら糞コードを大量コミットしてデスマーチになってしまう。
年金システムにはこういう馬鹿が大量にいたんだよな。 >>550
算数を数学とか言っているからバカにしたのに恥の上塗り >、100万回でms単位の差で選ぶとか阿呆としか思えない
日本のスマホゲームはポチポチゲームばかりらしい。
こういう馬鹿な考えのヤツばかりでリアルタイムの仕様を理解できるやつがほとんどいないんだろうな。
そんな馬鹿がasync/awaitで知った気になってテスト不能のアホコードを大量に書く。
昔から、馬鹿の尻拭い=同期のバグなんだよな。 ID:2N4AiZYB ←低脳煽りばかりで技術的なレスは一切しない馬鹿。技術的なレスすると馬鹿がバレるからな。
> 100万回でms単位の差で選ぶとか阿呆としか思えない アホみたいなスマホゲーム作ってる会社こそ、優秀な人材が集まってるんだぞ
アホみたいに儲かるからな ループの中身よりガワ気にするプログラマいたらアホかと思うわ ループの中身もガワも大事
ガワが簡素ということは保守のしやすさに繋がるんだから、それなりのスペックのマシンで動かせる前提なら高速化のための最適化をガチガチにするより
オーバーヘッド大きいけど簡単に書ける方法を採るべき
その判断をせずいかなる場合も高速なのが正義というのは技術に酔ってるだけ 速度だけならC#よりVB6のほうが早いわけで、C#には速度以外のものが求められていると思うんだわ
勿論早いに越したことはないが 何ふらっとみたいな話題やってんだよ
スレ間違えたかと思ったわ >>565
UWPはツールチェインに.NET Nativeが組み込まれているだけの話じゃね >>562
>>563
VB6はネイティブコンパイラだよ あんな質の悪いコードをネイティブなんて(蝶々蜻蛉も鳥の内) Console.WrteLine("{0}です", number);と
Console.WriteLine(number+"です");だとどっちがいい?
最初の方をよく使うんだけど 「どっちがいい」の基準が分からん
string.Formatでも同じだが可変要素が多いときは上の方が分かりやすいとしか言えない Console.WrteLine($"{number}です"); 某プログラミング言語勉強サイトで後者で打ってる模範があって見にくくてつい質問をしてしまった >>571
{0}派だったけど今はこれしか使わないな >>573
同じ変数を何箇所も使いたい場合は{数字}の方が便利 国内のドカタワールドはC#2.0で早くも息切れしてきて3.0で脱落者が出始めて4.0以降はほとんど追従できてない酷い有様
string interpolationなんて抜群にドカタ向きだから、dobonあたりが取り上げて宣伝したら流行ると思うけどね string.formatって1.0の頃から存在した気がする EFの文脈で$@"select * from Foos where {p}"って書くとちゃんとプレースホルダーに置き換えてくれるってので感心した ほんとコロコロと書き方が変わってほんと糞言語になったな。 C#7.0-7.1は6までちゃんとキャッチアップできてる現場なら自然に受け入れられるものだけど、C#7.2はヤバい
C++厨こじらせた奴がチームにいたらカオスになりそう
そして8.0ではついにnull非許容参照型が導入され、年内には現在ある全ての既存C#コードに対して膨大な数の警告が出るようになる 最高じゃねえか
ついてこれないレガシー人材も放置されてるレガシーシステムも要らん そもそもプログラミングは低脳がやっていい仕事じゃねーからな
この期に日本式の文系マと専門学校マは全員処分したらいい >>583
文系かどうか、専門学校出かどうかは、本質とは関係ないのではないか?
馬鹿なやつを特定して排除するならまだしも、経歴 **だけ** で判断するのはいかがなものか? レッテル貼りして思考停止して片付けるのは楽だよな
>>581
現状でもVSで推奨されないことに「メッセージ」は出るけど「警告」は出ないぞ
下位互換無くすのなら別の問題になるけどな >>581
ヌルポ許容しない理由はなんでしょうか? そもそも納品物がヌルポでよく落ちるのは単体テストをしない、手抜きだからであって、
新機能を好んで使う馬鹿は、null非許容参照型を導入しようとテストをしないのは変わらないわけで、
むしろバグが隠蔽される。VBのOn Error Resume Nextのバグ隠蔽機能の再来。
varと同様、コード品質を落とすアホ機能である。 単体テスト
それは企業によって意味が全く異なるワードである 単体テスト
・関数単位のテスト
・アプリケーションをビルドして作成・修正した箇所を開発者本人が動作確認するテスト
大きくわけてこの2種類の解釈
xUnit世代は単体テストってアレだよねっていう共通認識があるかもしれないが
老舗企業でそんな意味で単体テストっていう言葉を使うと恥をかくぞ >>587
if (arg == null) throw new ArgumentNullException(nameof(arg));
とか
Assert.That(Hoge(), Is.Not.Null);
みたいな頭の悪いチェックやテストケースが不要になる >>588
一般に、新しいものを使いたがるPGの方がスキルが高いので品質も生産性も高いよ
もちろん、メンバーの状況によっては縛りをかける判断が適切な場合もあるけど、
それはあくまでスキルの低いメンバーの生産性と品質の低下を避けるためだ
新しいものを使いたがる系の奴に古いものを強制しても、生産性と品質が大きく低下することはない しかし、linqだって10年モノ・・・新しい古いってレベルじゃねーよな 新しいフレームワークに飛び付く層はモチベーションの影響で生産力はあるかも知れないが、スキルが高いかというと微妙 varって気を付けないと000abdだと整数読み込みでするからstringで扱う時はstringでやるわ C#プログラマは全員、ライセンスで訴えられるリスクを負う。とても危険。 ユニットテストを意識するようになればメソッドやクラス構成マシになるのに、どうせ単体テストやるしと数百行のメソッド大量生産の俺社 メソッドは原理原則通り20行まで・・・ってのはやりすぎかもしれんけど
全ては関数にわけられるだけわける
1つの関数に2つ以上の機能があれば冗長だとは思う 関心事が1つであるべきだよ
機能数は複数あってもいい
例えば顧客オブジェクトを取得する/作成する/更新する/削除するための顧客リポジトリ
こいつの機能は4つだが関心事は顧客オブジェクトの永続化という1つだけ >>602
でもやたら関数に分けまくるのもやり過ぎの悪例だからなぁ
一行メソッドのたらい回しとか可読性低すぎて引き継いだとき殺意が湧くし 1行でも意図が明確化するならメソッドにする
C++とかやってきた人なら当たり前の感覚なんだけどね Expression Bodyのプロパティやメソッドがなぜ導入されたのか
1行のプロパティやメソッドはそれだけ使用頻度が高いってこと バカが書くオブジェクト指向()を舐めるなよ?
あいつら『かめはめ波()』の機能を
か()
め()
は()
め()
波()
にするレベルでバカだからな 意味を理解しておらず側だけ真似するからそうなる
猿は木の実でも取ってろ 独立している機能なら一行でも良いが
一連の塊で動いてる機能を再利用性の欠片もないパーツに切り分ける奴は頭が悪い
しかもその切り分けた関数で他の関数を実行してたらそれはもうただの難読化だ >>606
これが答えだよ
Microsoftや達人プログラマ達は1行メソッドの価値を理解して言語仕様まで変えてしまった
それほどまでに重要なものってことだ
一方で雑魚プログラマのお前らは価値を理解できずにぐちぐちと文句を言う
程度の低さを伺えるね コメント代わりに関数使う>>611みたいなのが害悪なんだよな プログラム構造が見渡せる行数になれば、ソレ以上の細分化は無意味なんだけどね
メソッドの分割は中身を理解しやすくするのが最大の目的で、それを阻害するほど分割したら意味がない 俺もコメント代わりに分けまくる派
純粋関数で責任が明確なら可読性は上がるよ 一目見たら分かる処理をオレオレ命名で飛び地化
お一人様開発なら良いがチームでやんなよ void MoveAX(unsigned short val); >>613
コードで表現できるものをコメントで書くバカが本物の害悪だよ >>618
コードで表現出来てることをわざわざ関数名で伝えようとするバカが何だって? >>614
中身を理解しやすくするのは実装の仕事
メソッド化する最大の目的は実装と意図を分離すること
僕が引用したリンク先でマーティン・ファウラーがわかりやすく説明してくれてるからぜひ読んで欲しい 三行で書かれてるコードならその場でその三行を修正するだけで済むが、
それを三つの関数に分けるとわざわざ別の行までスクロールして修正する作業が三回発生する
どちらが効率的で生産性が高いのか普通なら考えるまでもなく分かることだが、自意識過剰なバカには分からないのかも知れない
何せ自分のことを『達人』とか思い込んでるレベルのバカだし >>620
コードで表現していることを関数名で抽象化するんだよ
抽象化はプログラミングをする上で最上級に重要な概念だけどどうもIQが凡人以下だと理解できないらしい
物事を理解するにはその内容に応じた知能がどうしても必要になる
凡人が数学者や物理学者に成れない
難しい概念がわからないという感覚は人としてどうしようもないものなんだ
だからこのスレにも抽象化がわからない人が居てもおかしくはない >>622
場合によるんじゃないかな?
その一行が何度も出てくるなら関数化したほうが修正が楽
何百回修正するか
一回修正するか >>622
そのコードがなんのためにあるのかということを考える作業が3回も発生する
そのコードを変えて他に影響がないか確かめる作業が3回も発生する
同じことを他の場所でしていないか確かめる作業が3回も発生する
酷い無駄だ 関数化で抽象化はされる
抽象化された関数で何をやってるか詳しく関数名に入れると無意味なことになることもある
むずかしいよね bool IsEmpty() => this.Length == 0;
このレベルの実装であれば何も文句はないが、大半はそうじゃないのが現実 適切な直行化ができてれば、一連の処理の流れに関わる多数の関数を一緒に修正するなんてことはそうあるものではない
その程度のスキルレベルなら分け過ぎはよくないのは同意する もともと一行関数だったものが徐々に成長していくこともある
でも呼び出し元のコードは変わらない
ロジックが変わってないからね
これは大変素晴らしいことだと思う 十分に責任の明確化ができている関数は中身を見る必要が無くなる
不要になって消すことはあっても中身を弄ることはめったにない
この名前でこの引数を受け取るならこの結果が返るのが当然、と思えるのが正しい関数だ >>627をバカが真似した例
void Increment(ref int a) => a++
(※現実にあったコードです) >>631
そのレベルの現場ならCOBOLみたいにMOVE羅列してる方マシだね
世の中そういうところばかりではないから文句があるならさっさと転職しろ コードを書いてる時点で将来をすべて予見できるような素晴らしい環境にいるならいいけど
大体はそんなことはない
仕様を考えたのが他人であろうと自分であろうと >>631
範囲を扱うアルゴリズムに使わせる目的で使うイディオムだよ
こうしておけばプリミティブの数値も数値っぽい型(例えば巨大整数クラス)も同じように扱える
ようするにただのストラテジだな まあ正直C#で>>631は無意味とは言わないまでも違和感あるけどな
>>631もC#だけでなくc++とか経験してみるとこういう短い関数の真価を理解できるんじゃないかな 巨大整数とか仕様にカスリもしない未来を妄想して複雑化して「これがシンプルなんだよ!」と強弁するとかアホの典型だな
グループ開発の経験もない無職かよ 最初から無駄に俺様カスタマイズしたがるのはこじらせたC++erによくあるYAGNIだね
そして、Incrementの例のように基礎的な部分には異常に拘るくせに普通のアプリケーションコード部分は巨大なメソッドを生産する奴が多い
その割にはポインタ演算は大好きで、配列操作になるとウッキウキしてクソ低レベルなアスタリスクと++だらけのコードを垂れ流す
そういう連中だよ ふらっとも伸びているようだし承認欲求に飢えているアホどもが暴れているのか >>638
でもそれってお前の妄想じゃん
c++の仕事任されるほどスキルないっしょ? >>641「巨大整数にも対応してるオレ様のフレームワークを使えー!」 どんな面白い問題で盛り上がってるのかと思ったらしょうもな。
(1) 道具が多すぎる道具箱は使いづらい
からと言って
(2) 短すぎるメソッドは「無駄な道具」である
などと言えるわけがない。
そうである場合もない場合もあるに決まってる。
こんなくだらない話でよく盛り上がれるな >>643
だから無駄な道具を乱造して散らかす奴が悪いんだろ?
いくら「これが正しい!」と喚いてもゴミ屋敷をスマートとは言えんわ なんかずれてんな
いやわざとか?
みんな「1行コードはクール」
みんな「いや害悪だ」
>>631「1行コードにはこんな意味不明な頭悪いコードが実在するんだぜぇ」
>>634「いやーそれはストラテジでしょ。普通のコードだよ」
あほ「巨大整数ガー!ゴミ屋敷ガー!」
途中から明後日の方向に向かってんだよ
一例に過剰反応バカが湧いてきたあたりからね 一つ言えるのは、一行コードをセンスが無いやつが書くとゴミクズになるってことだな
まあ何行でもゴミと言えるかもしれんが、一行のゴミはメンテする時腹が立つ 1行メソッドの利点を理解できないアホが逆ギレしてるだけのパターンもあるということは忘れないで 一行のゴミにも何か利点はあるはずだと頑なに改めようとしない>>647なのであった
マジでゴミ屋敷の主だな >>645はstrategyも理解してないアホの子だから許してあげて
ただのラッパーを戦略と勘違いしてるなんて、きっと今年の春から働き始める新人だから 上司「なんでこのインクリメントを関数に分けてんの?」
新人「様々な型に対応する為のストラテジです!巨大整数などにも対応できます!」
何というか無能な働き者って言葉がしっくり来るな
たぶんこいつは誰からも理解されずに五月病患って数ヶ月で退職するわ インクリメントの(多相じゃなくて正しい意味での)ストラテジって何だろうね
++とInterlocked.Incrementを切り替えるとか?
エイプリルフールネタにもならんな ここには初心者スレに行ったほうがいいような連中しか居ないようだな ゆとり世代はなんでも揃ってるところからスタートだから楽でいいよな
iteratorの実装なんて考えたことすらないんだろう
羨ましいよ >>650
何で巨大整数に対応する必要ない状況を前提としてるの?
対応すべきという状況を前提とした途端に真逆の結論になると思うけど 仕様上ありえない予測
それを人は 妄想 と呼ぶのだ 巨大整数対応を勝手に仕様上あり得ないことにしている点
「○○にも対応できるように」の○○に巨大整数を入れるのはあくまで一例であり他にも山ほどあり得る点
この辺りが問題かな
言われた通りの物を納品すればいい所謂IT土方系の環境なら問題にならないんだろうけど >>656
対応すべきという状況を前提にしたとしても、>>650の新人がストラテジパターンを誤解している阿呆であるという結論は覆らない
>>631を型ごとに用意するのは一般にはパラメータ多相、あるいは単にオーバーロードと呼ぶんだよ すまん訂正
パラメータ多相じゃなくてアドホック多相だな この手のっていつも「自分の前提」の元に議論初めてかみ合わないんだから止めとけよ
ネタが下らないことだし、そんなことにこだわるしかやることないのかよ int型をBigInt型に切り替える必要が生じたとして、
型宣言から書き直さないといけないのにインクリメントを分離しておいて何が効率化できたというのかと
そもそもオブジェクト指向に則ればその型自体にインクリメントを備えるだろっていう
現実に設計したこともない新人が本の知識で言ってるだけだなこりゃ 正しい設計
INum num = new Num()
// INum num = new BigNum() ←クラス名を変えるだけ
num++ ←機能は型で規格化されてるので変更無用
間違った設計
Num num = new Num()
// BigNum num = new BigNum() ←型から変える必要がある
Increment(ref num) ←何これ?
void Increment(ref Num n) 処理
void Increment(ref BigNum n) 処理
↑型の数だけオーバーロードする必要がある どーでもいいことかもしれんが、セミコロンがないのが凄く気になる >>660
はぁ? どう見てもストラテジだろカス
void func<T>(T mi, T mx, FuncObj<T> increment) {
for(T i = mi; ! i.Equals(mx); increment.Exec(i)) {
//
}
}
class BigIntIncrent : FuncObj<BigInt> {
public Exec(ref BigInt x) {
x = x.Add(1);
}
} >>663
なんでBigIntのソースが手元にある前提なんだよ
まあ素人は標準のパッケージ以外を持ってきて使うなんて経験はないのかもしれんから間違えても仕方がないか
君素人っぽいし >>665
惜しい。一旦クールダウンしてよく考えよう。
同じ入力(コンテキスト)に対して複数のStrategyを定義し、状況によって使い分けるのがStrategyパターンだ。
一方incrementの場合、実装は入力の型に応じて一意に決まるだろ?「同じ入力」に対して複数の実装があるわけじゃない。
そういう、引数の型に応じて静的に実装を選択するのを一般に「多相」という。
特に、君のコードは関数型言語で型クラスと呼ばれるものに近い。ググってみると勉強になるよ。 >>667
1つ飛ばしでイテレートしたい場合とか同じ型でも幾らでもバリエーションは考えられるわけだがわかんねえだろうな用意されたもの使うだけのゆとりには >>665
なにこの頭悪すぎるゴミ
意図が読めない典型じゃん >>669
あらゆる物事に対してそれを理解するために必要な知能の下限が存在する
これって1つの真理だと思うのよ >>670
funcって何?
funcObjって何?
miって何?
mxって何?
Execって何?どういう機能?
BigIntでAdd?コレクションなん?
パッと見ただけでこれだけ疑問が湧くんだが、
プログラマ百人に聞いたら百人が死ねって返すレベルのクソだぞこれ
命名だけでバレる実力なら無理して書くなよ >>668
そうだね。確かに君の言う通りだ。
じゃあ君はなぜ>>665でわざわざジェネリックを使ったのかな?
>>665を見た殆どの人は、型に応じて++の実装を切り替えたいのだろうと思うだろうね。それを君はストラテジだと言っている。
このままでは誤解してしまう人もいるだろうから指摘したんだよ。
君自身はもしかしたら本当は正しく理解してたのかもしれないけど、衆目に晒すにはあまりにも不適切なレスだ。 文脈読めない、中心になってる話題を理解して枝葉末節を気にしない、っての実践するにもある程度の知能が必要なんだろうなー
そういうの苦手な人ってミーティングの時とか相当鬱陶しがられてると思うから注意したほうがいいよ >>665
これforでローカルに代入してるが値型のつもりなのか? >>673
悪いけど、文脈を読んだら>>665のコードは100人中100人が型++を切り替えようとしてるのだろうと解釈すると思うぞw >>672
ジェネリックかどうかは関係ない話だろ
この例も仮にスクリプト言語だったら型引数は無くても動作する
たまたま型の指定が必要な言語を例に使ったからジェネリックになっているだけ
しかしそのエッセンス自体は何も変わってない
まずはそこを理解しよう >>665を読むとこいつうちにいた新人より頭悪い気がする
ストラテジとか言いながらやってることが関数型だし
これでデザパタのつもりなら学校通い直すのを勧める ここでいうエッセンスというのは
* 処理の一部を外部から与えることによってアルゴリズムを交換可能にするテクニックをストラテジーパターンと言う
* ストラテジーはしばしばインクリメント処理のように非常に小さな処理になることがある
* その一例が>>631であり>>631馬鹿げたコードでもなんでもなく実用的なコードの断片である
という3点のことな >>678
λや関数オブジェクトがサポートされる言語では暗黙的にストラテジーの考え方が利用されている
そうと意識してないだけだ
ちょうどいい時期だ上司に頼んでお前も新人研修受けてこい 何も見せてなければ何とでも言えたろうが、
>>665を見せてしまったらもう無理だな
レベルの低さが露呈してるから言い訳にもならない
正直>>665を見たあとだと>>631が優秀に見えるくらいだし >>680
世間一般的にstrategyというのは>>663の例を指す
お前のは違う そもそも関数の細分化は可読性を損ねるって話なのに、
抽象的で省略しまくりの名前付けてる時点でな
設計に口出すのは十年早いと思うわ どうでも良いが>>665をよく見るとこいつrefの使い方すら知らないど素人くさいな
値次第でループバグ起こす構造だしこんなコード実務で仕込まれたら俺ならテロ認定する 本気で書いたコード貶されたら
「あれは手抜きだからw」と言い出す
まあリアルにいるよな ミーティングとか言い出して露骨に話題を避けようとしてるの笑える stringが参照型ってことはさ
string str;
void Reset() => str = "";
とするより
string str;
string None = "";
void Reset() => str = None;
と生成済みのテキストを使い回した方が効率良いの? >>692
null代入するのはC#8.0で警告対象 >>690 変わらないと思われ
string Func0(){return "test";}
string Func1(){return "test";}
string Func2(){return "te"+"st";}
string Func3(){return "TEST".ToLower();}
string a=Func1(), b=Func2();
Console.WriteLine(Object.ReferenceEquals(a,b)); >>693
非推奨になるのか!
って、C#5.0から変える気が無いけどもw >>690
これILはどっちも一緒の結果にならないのかね >>698
Formしか使わないからね
まぁ最近はスマホが多いのもあるけど C#ってどんどん惨くなってねーか。業務じゃもう使えないだろ。 アメリカではソフトウェアの内製化やクラウド化により、
ソフトウェアは自己責任でどんどんリリースできるようになってるの
自己責任ならデグレ出したらこっそり直してすぐにリリースしちゃえばいいの
SI型ビジネスとは違い、過剰にリスクを避ける必要がない
VSやC#もそういう変化に適応して開発やリリースのポリシーが変わってしまった
もうジャップランドのSIでは使えないよ リッチテキストボックスでDetectUrlsをTrueにしてハイパーリンクを開けるようにしたんだけど、
ハイパーリンクをクリックして既定のブラウザで開くと、勝手に最終行までジャンプしてしまう。
仕方がないのでEnabledをいったんfalseにして、その後開き、もう一度trueに戻すとジャンプはしなくなったんだけど、
リッチテキストボックスの任意の場所をクリックすると、やっぱり変な場所に表示が移ってしまう。
なんか対策ないでしょうか? >Enabledをいったんfalseにして、その後開き、もう一度trueに戻す
ごめん何言ってるのか全然わからない >>706
すいません、こうです
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
richTextBox1.Enabled = false;
System.Diagnostics.Process.Start(e.LinkText);
richTextBox1.Enabled = true;
} treeViewのちらつき防止ってどうやるんだろう?
5chブラウザとか、mousemoveでテキストにアンダーラインが出るようにしても全然ちらつかないよね
ダブルバッファでいけるのかと思ったら、treeViewはそれでは解決しないようで・・・ >>705
ミニマムコード書いて確認しろよ
クリックした位置にカーソル出ないのなら分かるが勝手に最終行までジャンプとか意味不明
あと初心者スレ池 >>700
もうここ10年新規案件やってないな。全部Javaに持ってかれたまま。
当然といえば当然だな。老害ヘジの暴走を誰も止めることができなかった。
ID:d442a5v8 ←みたいな低スキル信者の取り巻きばっかなんだろうな。 CAD系だから低身の見物
流石にJAVAでやれと言われた事は無いな 会社で生産管理ソフト導入したらそれ.netだった
描画はネイティブのDLLに丸投げだったけど 業務で言えばjava : c# = 1000 : 1 ぐらいなイメージ 業務だと冗長でもいいからバカでも使える単純な機能だけで組まなきゃいけない
三項演算子程度のものも使用禁止
C#とは無縁の世界 それだけじゃ足りない
どんな初心者、いろんな人が保守しても長期間にわたって大きく崩さないような土台を建てる必要がある
超絶技法で難解なプログラムを作るよりよほど難しい そして冗長でコピペだらけの巨大なシステムが出来上がって別の意味で保守できなくなるんだろ
業務系ってそんなシステムばっかりじゃん
誰でも読めるようにひらがなだけで六法全書を書く並みにバカ
余計わかりにくくなるだけ それは分かりやすさというより開発のスケーラビリティの問題
日本のSEってトップダウンのコード設計が全くできないから、
開発規模をスケールさせようとすると重複上等でなるべく個別の機能ごとに独立した形にするしかないの 重複した分だけ開発・保守工数が増えてくから重複上等じゃスケールしないよ
あっちでバグがあった、仕様が変わった、横展開しろ、って炎上の王道パターンだよね
つかわかりやすさの問題だ
言語機能は便利でわかりやすいから追加された
それを使わないということはそれだけわかりにくくなるということ
ベタなループ書くよりLinqの方がわかりやすいからLinqが発明された
そういうこと 20年以上前から言語機能では勝負してないと思う
そういうのよりミドルウェアの有無などのほうが業務でjavaが選ばれる理由だと思う
一から新しいものを作らないといけないか既存のものを使えるかが分かれ目
業務で必須のDIとかそういうのをしっかり土台ができているのか
c#はそういう所でjavaに負ける Javaなんて、Android向けのクライアント開発なければどうなのよ??
今業務でもサーバーサイドJavaなの??
んなわけないよね? 業務系のロジックは大体javaだよ
一般的に開発求人といえばjava
大規模になればなるほどjava以外の選択肢はなくなる 今時ミドルウェアやサービスに大した差はないってのが現実
そもそもプラットフォームや言語を選ぶ時点でそのミドルウェアは候補から外していい
>>720
Javaで書かれたサーバーサイド資産は大部分がメンテナンスモード
新規開発はかなり減ってる webプログラマーと業務プログラマーは別
業務はほぼjava一択 >>716
ちゃっかり業務系を六法全書に例えるなよw
あれは絵本だぞひらがなが最適なんだよ EXCEL(xls形式)のデータを読み取って何らかの処理を施して別ファイルに書き込みたくてNPOIについて調べてるんだけど
セル内文字列の一部に文字飾り(取り消し線、上付き、下付き)がある場合にどの文字飾りか判定できる方法ってない?(文字飾りを反映させて別ファイルに移すために)
HSSFRichTextStringとして読み取ればnumFormattingRunsが文字飾り有無で文字列を分割した際の部分文字列数となることは分かった
getFontAtIndex、getFontOfFormattingRunで指定箇所の文字飾り情報が分かると思ったんだけどこれで得られる数値が同じ文字飾り種類でもコロコロ変わってよく分からない状態 Javaエンジニア「インスタンスメソッドは難しい。インスタンスを禁止して初心者でも理解できるstaticメソッドを使おう。」
Javaエンジニア「ファイルが沢山あると初心者が混乱する。クラスを禁止してファイルをまとめよう」
Javaエンジニア「関数は初心者には難しい。すべてMainに書こう」 C#はVBがカスPGカス案件の受け皿になってるお陰で、Javaに比べると平均レベルは高い気がする
というかJavaのスキル幅が広すぎる VB.netは何のメリットもないのになんでつかってんだろ? C#は上級者向けって散々プロパガンダしてきたから自覚のある雑魚がVB.NETに吸収されてくれた
Javaは誰でもウェルカム初心者に最適の言語みたいな空気を出し続けた結果底辺が爆発的に増えて悲惨な事になった 多分VB.netのほうが難しい
少なくとも見づらい >>10
Javaで言うNashornみたいなのあります?
それでjQuery使いたい。 C#勉強してもJavaと違ってほとんど仕事ないんだぞ。
最新機能のコード張ってドヤ顔してる奴は日頃何のコード書いてんだ?
もしかしてアプリは何も作ってない生産性ゼロの無職じゃないのか。 >>733
最新機能のコードってどのレスだよ…
仕事でやっているような奴らがこんなところにこんな内容で書き込んでいたら心底軽蔑するわ >>734
落ち着けよ。何言ってるか分からん。
日頃から人と話してないからそういう変な日本語になるんだぞ。 仕事がないなら自分で仕事を作ればいいだけ
仕事が流れてやってくるのを待つだけならプログラマーやらない方がいい >>733
仕事はあるんだよjavaドカには縁がないだけでさ 仕事というのはやれば利益が出るものだ
利益が出ないものは仕事ではない
安い労働力じゃないと利益が出ないのであればそれはすでに仕事じゃないんだ マ板でやれよ
趣味グラマには関係ないしローカルルール違反 >>708
ヒマだったから試したけど5chブラウザがどうなっているか知らんけどダブルバッファ設定なしでチラつくように見えないが
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.treeview.hottracking(v=vs.110).aspx
背景付けたらチラつくかもしれないが、それはダブルバッファ設定で解決するはず C#のnAudioを使用してボイスチェンジャーを自作しようと考えております。
音声データのリアルタイム入出力及び音声データ数の増減によるピッチ変更までは出来ている状況です。
私が今困っているのは音声データ数の増減なしのピッチ変更についてなのですが、どなたかご教示願えませんでしょうか?
また、使用言語がC#のため、こちらの板に書きませていただきましたが、質問内容が不適切であれば、適切な相談する板をご紹介願えませんでしょうか。
以上です。よろしくお願いいたします。 直接の回答じゃないけどこんな本でも買ってみるとか
http://amzn.asia/0Wp3Q48 なんでMSの期待の星だったC#がたった10年でこれほどマイナー言語になったんだろうな。
やっぱりヘジはマイナーの星の元に生まれたんだな。 delphiからc#に移った口だけどずっとc#の地位はひくかったよ
最近は逆に地位が高くてビビる delphiのころは趣味でdelphiやってるって言ったら
何それクスクスみたいな扱いだった
c#に移ったら移ったで同じような感じでMSが作ったやつでしょ?
MS大すきなんだねクスクスみたいな扱いだった
いつも悔しい思い出いっぱいだった 昔はマジでC#はVBを消し去ると思ってたが、まさかポンコツJavaにC#が消し去られようとしてるとは。
当時のオレは信者的な変な妄想に駆られてたんだな。 c#はMSが作ったのに最新技術からは常に距離があって悲しい
win32呼ぶのもDirectX呼ぶのもめんどくさい
slimDXとかNAudioとか使わないといけなかったり意外と何かやりたくてもwindowsとか親和性が低い ほんと、MicrosoftはC#からWin32API呼ぶライブラリぐらい全部用意しろよなと思う。 大衆の大半はものを知らんバカって構図はシステム開発業界も政治もおなじだな
初心者向けという宣伝文句に騙されて初心者がJavaに食いつく
初心者で水増しされたシェアを根拠に考えないバカがJavaを採用する
だから初心者とバカしか居ないんだよJava案件って
発注する方も人数ばかり多くてろくな人材がいないってわかってる
だから優秀な人材がやりたがらない、やる価値の低い、とりあえず頭数揃えてデスマゴリ押しすればなんとかなるタイプの土方案件を押し付けるために大量に発注する
だからJavaの案件は多い
その辺の事情が統計に表れてるんだろうな
こういう考察ができずに数字取ってるってだけではしゃいじゃうのがまたJava土方らしくて微笑ましい >>754
妄想はいいからw
javaはc#が出てくる前から地位を確保しててc#はそれに食い込めなかっただけだ
似てたからあえてc#は選ばれなかった
javaとc#が似てなくてc#に大きな強みがあれば事態は変わってた
javaはOS選ばなかったので柔軟に環境を構築できた
c#にはそれが無理だった
勝負にならない ちょっと前までc#を選ぶ場合別途windowsが必要だった
サーバー群にそこだけwindows入れたら技術者が二系統いるんだからコストアップでしかない 文系でも未経験でも誰でもプログラマーになれます!系の企業でとりあえず教えるのがJavaだからなあ >>759
当たり前だろ
ずっとjavaで仕事するんだから 楽で価値ある仕事につけないかわいそうなJava土方さん 何を勘違いしてるのか知らないが、そもそも仕事でC#やってる奴でC#しかできない奴なんかまずいないぞ?
今C#の仕事があるからC#使ってるだけだ javaとc#は対立軸にあるとは思わない
javaはソフトウェア開発の実用実践的な方面で発達しててその恩恵をc#もこうむってる
javaのOSSをc#に移植したものがたくさんある
c#が弱い分野もそうやってなんとか保ってる
宗教的な理由で多言語を叩くのはみっともないし自分の首を絞めてる
どの言語よりjavaはc#に似てるんだから よく分からん奴だなあ
プラットフォームから自分で選べる場合は俺もLinux使うし、すぐに引き継ぐ必要があるなら言語はJavaを選ぶよ
言語も好きに選べるならNodeやPython使ったこともある
C#はWin縛りがある場合だけだね
言語なんか何でもできて当たり前だろ 言語なんか何でもできて当たり前系初心者w
この時期よくいるなw C#が最強すぎて雑魚が沸いてるようだね。大人しくC#勉強すればいいのに(笑) 最近のC#プログラマはUnityでゲーム作りながら覚えた人も多いんじゃないかな
自分も元々はC++で、趣味でUnity覚えた後にVC#に移行したタイプだし ふらっとにワッチョイ付いたからゴミがこっちに流れてきたか ワッチョイあるとNGが一週間持ってしまうからな
NGされることに耐えられない奴にはツラい >>742
うおおおおおおおおおおおおおお
ありがとう!
イベントのmousemoveでポインタが上に来たときにいちいち描画するというめんどくさいことをやっていたのが一瞬で解決されました。 >>744
この間質問させていただいた者です。
音声波形について知識を深めまして、解決に至ることができました。
ありがとうございます。 String.formatでどんなint32値でも4桁固定で出力する事はできますか?
C++のprintsfでは出来たはずでしたが... 4桁固定って10000ならなんて表示されればいいの? 例えば"123456"なら"1234"、"3456"と何らかの指定で出来ないかなと。
printfで試したら出来ませんでした。"%2.2s"と勘違いしていたようです。
ありがとうございました。 ググれない、意図を正確に説明できない、思い込みで質問
この程度の初心者ならふらっとに行けばいいのに 答えられない
でも
マウントしたい
って奴はどこにでもいる マウントしたい
でも
マウントとれない
>>783に同情する csc.exeってさ
フレームワークバージョン選択するスイッチねえの?? >>785
最近は「答えてやらない」とかいう安上がりなマウンティングも見かけるな。 質問ばかりして答えられないと勝った気になる馬鹿左翼の手法がム板で横行してるようだ。
ゆとりだろうな。 質問スレなのにわざわざ答えない宣言する方がどうかしてる >>788
MSBuildでターゲット指定するぐらいかね >>791
教えたがりが答えられない質問に対して自尊心を維持するにはそうせざるをえないだなこれが
てか大人なら察してやれよw ✕とか○印を表示させて移動させたいんだけどfillellipseとかで描いて消してを繰り返せばいいの? MSXのスプライト機能みたいなものはないんでしょうか? >>800
Unity使え
Spriteも当然ある スプライトは言語の機能にはない
標準のフレームワークにもない
Unityみたいなゲーム用のライブラリ探してみるしかないかな コントロール(例えばPictureBox)をスプライトみたいに使えないこともないよw
透過色も使えるし優先順位付きに重ね合わせも出来る やっぱりunityですか...
drawで描いたり消したりでもいいんですよね。でもゲームっぽくいろいろ動かしたいならunity勉強するべきなのかな? 初心者にこそUnity
情報の量質共に圧倒的だ
C#は言語の中ではかなり複雑で習得の難しい部類で、初心者が言語から入ると絶対に挫折する
初心者向けのUnityのチュートリアル的な本で動かしながら学んだほうが続く unityかぁ。
面白そうだけど、いまようやっとc#使い始めたところなので、
あまり手を広げたくない。
でもunityで研究してる人もいるみたいだし、
ゲーム系の機能が豊富だとそれをいじっていて出てくる研究のアイデアってのもあるんだろうなぁ。 WinformsやWPFと絡めてやるならSharpDXでやるのがよろし
まあDirectX方面に慣れてないとキツイかもしらんが 春休みは終わったはずなのにunity、unityって無職かよ。 描画系めんどくさいから、Unity使うと楽だよ
ドットインストールのUnity入門動画見れば1日で使える様になるけど、Javascript使ってる所をC#に書き換える必要があるね C#で作ったアプリのリソースファイルを外部に委託して英語に翻訳してもらいたいのですが、
リソースファイルそのものはXMLで、そのまま委託先にファイルを渡しても編集ができません(XMLを理解していないので)
更に.Designer.csの<summary>の書き換えもどうすればいいのか分かりません
このような場合、どのようにして翻訳をしてもらえばいいでしょうか? 表形式に変換して渡す
対訳埋めて返してもらう
逆変換する
終わり 表形式ってExcelのことですか?
どうすれば変換できるのですか? プログラミング以前の問題だけど、正確な、少なくともユーザーが見て意味が理解できる
翻訳をしてもらうためには、どっちにしろ日本語の原文だけじゃなく、
それが使われている文脈も合わせて示さないと難しいよ
UIの場合表示スペースの問題もあるし 難しいと勝手に決めつけないでください
そのような事は聞いてませんので質問だけに答えてください >>800
このレベルなら実際にやってみればいいのに
やる前にここで聞いてどうしたいんだろう
このレベルでUnity使えって言うアホは死んだ方がいいよ VC#プログラマで過剰にUnityを嫌ってる人って、一体何と戦っているんだろう?
Unityのお陰でC#人口が増えたんだから、みんなで仲良くすればいいのに どこにそんなレスがあるのよw
どんな被害妄想だw
チミこそ誰と戦ってるんだよw Unity環境固有の質問は、ゲ製作技術板の方がいいかと >>827
スレチにも関わらずUnityの普及活動してるおまえとだよ。おまえのレスはただの荒らし行為に過ぎない。 あんまり調べられないままの相談で申し訳ないのだけど
証明書の秘密キーつきのエクスポートをやりたいんだけど、秘密キーで暗号化するあたりのサンプルが見当たらない
X509certificate.Exportメソッドに暗号化のオプションが無いのは、アルゴリズムを知られない為に実装していなかったりすんのかな?
それとも探し方がぬるいだけかな
実際ぬるいから、もっと探さなくてはいけないんだけどちょい暇が足りていない… と思ったら、オーバーロードで別メソッドあったわ
うんこしてきます。 C#でLinqを使うよりPythonの方が2倍速かったのでベンチマークをしてみた - Qiita
https://qiita.com/yniji/items/6585011633289a257888
C# の Linq が python の2倍遅い、は嘘 - Qiita
https://qiita.com/Akira_Kido_N/items/d9519b05ccee6a67158f
LINQ を使う時に一般的に気を付けること via C#でLinqを使うよりPythonの方が2倍速かったのでベンチマークをしてみた - かずきのBlog@hatena
http://blog.okazuki.jp/entry/2018/04/20/105738
そもそもPythonからCのライブラリ呼んでいる時点で反則w >>836
正しくはCのが早かったというべきだよな。
C#でC作成ライブラリ使えばもっと速いだろう。 別に内部的にCのライブラリ呼んでだって良くないか?
そのライブラリが全く普及していなかったりするならともかくそれなりに普及していて誰でも普通に使えるわけだからpythonのライブラリと見なして構わない
手段を目的にしてしまった的外れなツッコミだと思う 比較方法は誤ってないよ
特殊なことしなければ呼び出せないならともかく、内部的にCで書かれているだけで表面的にはpythonで書かれて提供されている
つまりpythonユーザーなら誰でも普通にその速度で計算できるわけで、それをわざわざ縛る意味など皆無
C#だって、というなら内部的にCで書かれたC#用の同等ライブラリを探せばいいだけのこと
もしそんなものが存在しないならC#ユーザーはその速度が出せないんだから負けていると言うしかない > https://qiita.com/yniji/items/6585011633289a257888
の事なら謝りが多すぎてもやはベンチマークになってないレベルだけど
まさにweb用ゴミ箱ならではw ここでいくら吠えたところでまったくの無意味
Qiitaの著者に直接言えやコメントも出来ないゴミ共 稀に興味深い記事もある(性別のISO規格の話とか)が、
最近は初心者とワナビのメモと知ったかが増えすぎて、
聳え立つクソ山と呼ぶに相応しい そういう状態防ぐにはどうすればよかったんかな?本名制? 最近の若者はベクトル計算用ライブラリと汎用コレクション操作のパフォーマンスを比較してイチャモンつけてしまうのか
しかも汎用コレクション操作の使い方を間違えてさらの遅くする徹底ぶり
ここまでくるとアンチC#がわざとやってるのかと疑ってしまう ゴミ袋に名前書く時代なんやから本名制にしたってなんぼでもゴミ製造するやろw
大体自分がゴミ製造機やっちゅー自覚がないんやからあいつらはw あとあれやなアウトプットアウトプット言い過ぎやねん
ほとんどの無能は黙ってインプットだけしといた方がええねんマジに 無能な働き者はどこでも迷惑だよ
役に立つとしたら燃料になる位だな 多分こんなところで吠えてるだけの奴よりはかなりマシだと思う そんなバカなw
お前の田舎ではゼロがマイナス1より小さいのか?
とんだ地方だな ここは便所だから
便所で脱糞して悪いことなど何一つない タイトルからしてバカ丸出し
ゴミクズ以下の記事だな >>852
意味不明な擁護してるヒマがあったら編集リクエスト(笑)でも出してろ生ゴミ try{}catchってmainで使っちゃダメなんだな、mainで使うと先になんかエラーチェックされてるみたいで動いてくれない コンソールアプリでasync/awaitを初めて導入しようとサンプル書いて
「どおじてブレークポイント貼っでもがっでにアプリ終了じぢゃうのおおお」と
一時間くらい泣きそうになってた頃の自分を思い出した >>861
Main.cs(11,9): error CS0155: The type caught or thrown must be derived from System.Exception
catch(Hello e)ってなに? >>861
throw new Exception(); ルール無視の書き方して動かないって文句言うって幼稚園児か try使った時にエラーの受け取り方がわからないんだよ
mainで使った時にどうエラーを受け取ればいいのか、0の除算したcatchで処理終了しないでランタイムエラーの方で止まってるから >>868
確認したいだけならint x = 10 / 0;を消して>>863のthrow new Exception();を入れてcatchの(Hello e)を消せ
何見ていたらこんなあほな書き方になるんだ Main云々以前にそもそもtry句での引数無しthrowも定数ゼロ除算もコンパイルエラーだし
ぶっちゃけ開発環境上でC#書いたことがあるのかも怪しいレベルだなコレ… >>861,868
こういうことやりたいんだろう
using System;
namespace Hello
{
class Hello
{
static void Main()
{
int a = 10, d = 10;
try
{
a = a / d;
}
catch (Exception ex)
{
Console.WriteLine("Hello.Main()で例外が発生");
Console.WriteLine("エラーメッセージは「{0}」です", ex.Message);
Console.WriteLine("エラーが起きたのでプログラムを終了します"); return;
}
Console.WriteLine("終了しました"); Console.ReadKey();
}
}
}
usingの下なのにnamespaceもないしVisualStudio使ってちゃんと基本からやれ。ふらっとの初心者よりもひどい
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/try-catch https://ideone.com/gjRXk6
こうゆう意図的にエラーを起こしたかったんだよ、エラーの起こし方がよく分かったわ StreamReaderやStreamWriter使ってusingで括るの忘れてファイルが握られっぱなしなんですけど、なんでClose呼ばないの?
習慣にしようよ。って、こいつらOpenが無いからClose忘れるんだよね。
非対称な関数作るんじゃ無いよもう。Open要らないならCloseも要らない様にしろよな。ぷんぷん。 もはや一貫性のない欠陥言語。当初のルールを無視しまくり機能追加した結果がこれ。 無能老害がついていけなくなった結果が >>877 w >>878
C#のような古くさい設計の言語使ってるおまえは十分老害。
C#はまさに増築しまくりの不便で欠陥だらけの温泉旅館。
未だにそれをナウい温泉だと思ってるおまえのようなボケ老人にはお似合いwww はいはい
わざわざそんな言語のスレに来てなにをしたいんだよ w いや、ドア開けたら閉めるだろ?、猫じゃ無いんだからさ。
でも開けた覚えの無い自動ドアが実は半自動で、
閉める時だけは手動なんて、合理的に考えて不便じゃね? >>883
お前のケツには「人生を開始する」なんてメソッドは生えてないだろ?
でもお前の人生はそのうち終わるし、刺されたら即座に終わる
生まれた瞬間に始まっていて、終わらせるのはいつでもできる
ごく自然な摂理 >>884
親クラスが産むメソッド呼んだんだから、終わらすメソッドも親クラスが呼ぶだろ?
自殺メソッドはそりゃ普通は呼ばないわな。 >>885
あー、お母さんと代わってくれるか?
もしくは学校に行きなさい C#はニート専用だしな。プロはJavaを使ってる。 馬鹿がガベコレで夢を見たんだよ。そしてJavaをパクった。
だが現実はusingにdisposeだらけ。
ほんと馬鹿だよな。もはやC言語以下の不便さ、汚さ。ボケ老人には革新に見えるらしいwww 一貫性はあるけどさ、仕事で2.0のソースメンテするとストレス半端ないよ わかる
C# 2.0ってまるでJavaみたいでスゲー使いにくい カベコレのせいでデストラクタがいつ動くか不定でC++のようなスコープ終了で自動クローズができなくなった。
結果、using、disposeの導入。
馬鹿がほんと何も考えないで設計するとこうなるという見本。ほんと醜い言語だよ。
一貫性? ないない。C#2.0とは既に別言語だよ。名前買えるべき。Neet-C#とかに C#が開発現場からほぼ淘汰されたから良い時代になった。保守で残ってるのは2.0案件ばかり。
こういうゴミ案件は、自称おれは理解している ID:bL+b5Osr に投げるのが一番。 ホントにゴミの巣窟スレになったな
初心者どころかひきこもりがずっと吠えていてそれにいちいち相手するクズまでいる >>900
IDに変えるのにどんなに時間かけてんだよ。馬鹿め。 せっかくのGWだからな。
みんなで死滅寸前のC#にトドメを刺そうではないか。
ヘジがMSを退社すれば黒歴史としてC#は完全に消される運命。 なんかC#に親でも殺されたのかと思うような奴らがいっぱいおるのなんなの
今さらJavaドカタが出張してくるはずもなく謎だわ GWなのに人がいない。C#は完全にオワコンだったわ。今日はニュー速で過ごすわ。 Javaは今末期だから必死なんだろう
JavaしかできないJavaドカはおまんま食えなくなる 狂っているのはID:OvoGcsme=ID:o29GXtCOだけ
GWが昨日から始まっている方 ヒープ管理から解放されたけど、むしろリソース管理が意味不明になってるよな。 どうせそいつはふらっとに居たおじいちゃんだろ
相手にするだけ損 ワッチョイなんかいらない
規制を強化すればスレが良くなる、という単純なパターンを鵜呑みにする思考こそ批判されるべきだ ワッチョイ有りはもう立っているんだから付けて立てたら重複だ
ふらっとに頭のおかしいやつ行かないようにここで囲っててくれ 勝海舟は「憂国の士を自称する連中が国を亡ぼす」と言ったそうだけど、スレも同じだね。
荒らしてる奴に限って自分が荒らしだと思ってないどころか、
逆に俺はスレを憂いてるんだとか盛大に勘違いしてるのな
お前がいなくなるのが一番スレのためだってw >>910
1週間NGに入れられるから便利ってだけだよ
規制ってなんのことさ まあしかしこのスレには要らない気がするぜ
ゴミ棄て場は必要だからな マウスカーソルの位置を0.1sec置きぐらいに全部取得したいんだけど、
終了時刻は決まってないので配列で宣言し難い。
これってDictionaryとかに入れていけばいいのかな?
x,y座標と時間の3変数になるんだけど、
時間をkey noにしてx,yを紐づけるみたいな感じでOK?
time,xとtime,yの二つのDictionaryを作る。
なんかすごく冗長な気がする。
time, x, y
みたいなDictionaryってできないのだろうか・・・。 時間をキーにする意味がないだろ
普通にList<(DateTime time, int x, int y)>でいい >>920を見てC#って匿名型のList<T>を簡単に作れる新しい構文ができたのかと
思ったが、そんなものはなかったw
あと、調べてないがDateTime.Nowの精度は恐らく秒単位だと思う。
だから時間は記録開始かまたは先頭のデータからのオフセットをms単位で
記録するとかの方がいいだろうねたぶん。 >>922
DateTimeプロパティにMillisecondあるから。DateTime.Nowでも取り出せる
https://msdn.microsoft.com/ja-jp/library/system.datetime(v=vs.110).aspx
>>917
Dictionary<DateTime,Point>じゃ嫌なのか? そういう場合は構造体に包んで扱うと良いよ
public struct Cursor{
public float x;
public float y;
public int frame;
public Cursor(float x, float y, int frame){
this.x = x;
this.y = y;
this.frame = frame;
}
}
// コレクションを生成
var list = new List<Cursor>();
// 追加する
list.Add(new Cursor(x, y, frame));
あとマイクロ秒を後で使う予定がなければフレーム番号で保持するのが妥当だと思う >>922
いや今のC#は>>920は通るぞ
タプルだ >>924
データ型にms単位になってるからってHWがその精度を持ってるかどうかは別問題w
RTCは歴史的にそんな精度を持ってないw
>>926
ああ、そうなのか
名前知ってるだけで全然使ったことないから知らんかった >>927
知ったかさん乙
現在時刻をRTCから取得するOSなんてほぼないぞ >>930
マジで言ってるの? w
RTCから読み出すのはブート時だけやぞ 動画や音声再生するのにより正確なタイムチックが必要なアプリは山ほどあるし、実現してんぞ。 ほら、彼ら少し頭おかしいからさ
許してやってくれないか RTCは頻繁にアクセスするには遅すぎるデバイスだからOS起動後の時計はタイマー割り込み駆動だよ いろいろありがとうございます。
終了時刻が決まってないからlistとかかなとおもったんですけど、
構造体の方がよさそうですね。
試してみます。 それとは別にc#で
List<(DateTime time, int x, int y)>
みたいな複数の変数を扱うことってできるのでしょうか?
var list = new List<int>();
みたいに一つの変数だけなのかと思ってました。
これができるといろいろ便利そうなのですが・・・。「
List<(DateTime time, int x, int y)>
って入力してもエラーが返ってくるんすよね。。。 >>940
VSのバージョンが古いんだろ
VS2017でないとダメ VS2017かつ、NuGetでSystem.ValueTupleを参照する必要がある タプルの利用には、ValueTuple構造体という型が必要になります。 この型が標準ライブラリに取り込まれるのは .NET Framework 4.7、.NET Standard 1.7を予定しています。 それ以前のバージョンでタプルを使いたい場合には、以下のパッケージを参照する必要があります。
System.ValueTuple なるほど
System.ValueTuple
ですね。
試してみます。
ありがとうございます。 また初歩的な質問で申し訳ないのですが、
C#のクラスと構造体で、これまで軽量のオブジェクトでもすべてクラスで作成していたんですが、
あまりお作法的には宜しくないんでしょうか? なんとなく構造体はクラスの下位互換みたいなイメージで使用していませんでした。 応用アプリケーションなら全部クラスでいいよ
構造体は構造体のメリット・デメリットを全て把握した上で、構造体のほうが良い選択であり、将来に渡って絶対にクラスに変更したくならない、と確信できる場合に使うもの
そんなケースは滅多にない
あ、PInvokeは例外な C#上の構造体はクラスと等価だ。
つか、構造体で使う共通処理をまとめてそこに突っ込め。
ほら、使い易くなっただろ?
構造体なんか使わずクラス使え。 structは値型として扱われるので
参照型であるclassと同じようにコピーするとメモリの内容が丸ごとコピーされる
structを使った方が良い時の条件見たけど
普通はクラスで良いんじゃね?
https://dobon.net/vb/dotnet/beginner/whenusestruct.html ありがとうございます。
ちょっと急ぎでコーディングしてるので、
不慣れな構造体でなくクラスでやってしまおうと思います。
こうやって新しい知識をいれないとあとではまって痛い目あうのかなぁ。 >>954
構造体には構造体のメリットもある(だからBCLでも使われてる)んで、
2chネラ的な1bit脳の極端な意見は真に受けない方がいいよw
一つだけ挙げれば、プロパティとして公開するような値は構造体の方が楽。
クラスでもイミュータブルにすれば構造体と同じような感覚で使えるが、
イミュータブルなクラスは使い勝手がよくない >>956
わかってないなら無理してレスしないほうがいいぞ IoTでまだまだJAVAは安泰?
C#もIoTがいける様にならないんですかね・・・ >>955
C#では構造体絡みのパフォーマンス改善が最近ホットなのに何言ってんの? 素人がテキトーに構造体を扱うと却って遅くなるなどの弊害がある
使うならプロファイリングして本当に速くなっているか見極めるべき >>962
わかってないなら無理してレスしないほうがいいぞ 最近の参照関連の拡張は失敗だった
なんもわかってない奴がドヤ顔でクソコード量産する未来しか見えねぇ >>964
Framework自体のパフォーマンス向上に大きく貢献してるんですが… >>965
そこが悪いとは一言も言ってないだろう直近の少しのレスも読めねえのか なんだかわいそうな子か
相手するだけ時間の無駄だなこりゃ かわいそうな子たちのレスバトル
かわいそうに幕を閉じる ここで真っ赤になっている時点で恥ずかしいのに中身が低能の罵り合い
次スレ立てる人がいたらワッチョイは付けるなよ
もうワッチョイ付きの相談室のスレは2つあるから ValueTuple構造体
あるといいなあとは思ってたけど、遂に実装される日が来るのか カーソル記録のものですが、
class Point { public int X; public int Y; 他必要メンバ変数 }
でwhileループを組んでゲーム終了条件でBreakするまでは
上記クラスのインスタンスを無限生成してカーソルの位置を記録するみたいな感じでおかしくないですよね? それだと際限なくメモリを圧迫するから、保持できる上限を決めておいてそれを超えたら追加時に古いのを消したほうがいい >>981
確かにゲームの終了時刻を決めておかないと、どこかでメモリ破たんするですよね。 >>982
もう一回>>981を読め
終端を決めろって書いてあるわけじゃない
あと全体のコンセプトや仕様が見えないんだから、それ抜きでここで聞いても正しい答えが返ってくるとは限らない 結局こいつは自分のやりたいことが最初から有って、賛成意見が欲しいだけなんだろう
やり方を変えるようなアドバイスはするだけ無駄だぞ >>980
100msごとぐらいの記録でよかったんじゃなかったの?
どっちにしろ、ビジーループが回るごとにマウスポインタ位置の記録を取る(そう言ってるように聞こえる)
なんて無駄過ぎる。
限りなく忠実にマウスポインタの移動を再現したいとしても、常識的に考えて
ポーリング間隔は30ms程度で十分なはずだし、座標だけでなく時刻も記録するのであれば
前回から移動してなければ記録する必要もない
まあ、何にしろ何が聞きたいのかはっきりした方がいいね
そこがさっぱり分からん。 何が聞きたいのかはっきりしないのになぜかオレオレ方式を語り出すとか w >>985
0.1sec = 100msだがお前は何を言ってるの? 画面更新の度にマウスの位置が移動してるんだから、120fpsで回してりゃ将来的にも需要に足るんじゃね?
それ以上細かくしても再生出来ないしな。 ところで、ビジーループってどのくらいで回ってて、マウスの分解能ってどのくらいなんだ
マウスって所詮対人間なんでそんなに反応速いデバイスじゃなかったはずだが どれぐらいって…
環境よるとしか言えないんじゃない? 前回と位置が変わってなかったら
その位置が何回連続しているかというカウンタを+1すればいい
馬鹿正直に記録する必要はない もうこのスレ馬鹿しかいないからこれからはStackOverflowで相談した方がいい 応用アプリケーションって書いちゃう人がドヤ顔するスレだから多めに見ろよw このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 198日 8時間 25分 32秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。