X



C#, C♯, C#相談室 Part95
レス数が1000を超えています。これ以上書き込みはできません。
0453デフォルトの名無しさん
垢版 |
2018/02/24(土) 04:11:27.27ID:pGxepaPb
public class MyClass<T> where T : MyClass<T>
{
 ・・・
}
こんなコードを見たのですが、意味を教えて下さい。
0455デフォルトの名無しさん
垢版 |
2018/02/24(土) 11:09:30.78ID:l2ZGUZ4P
「ジェネリックのwhere」はともかく、
「作れないクラスの作り方」は気になるなw
0456デフォルトの名無しさん
垢版 |
2018/02/24(土) 11:36:53.68ID:pGxepaPb
>>454
俺です
0464デフォルトの名無しさん
垢版 |
2018/03/01(木) 18:12:32.03ID:InHAxY2J
FAXどころかプリンタすらC#使ってやるのは不安になるなあ
趣味レベルでちょっとしたツール作る分には楽でいいんだけど
0466デフォルトの名無しさん
垢版 |
2018/03/01(木) 18:44:52.54ID:InHAxY2J
>>465
何のソースコードを読むんだよ
WinAPIやCOM使ってできることならなんでもOKって知っていればどうでもいい
0468デフォルトの名無しさん
垢版 |
2018/03/01(木) 21:48:54.49ID:U+1QZYaU
>>466
何のソースってC#のライブラリのソースだよ

>WinAPIやCOM使ってできることならなんでもOKって知っていればどうでもいい
だったらなんで不安になるんだ?
0469デフォルトの名無しさん
垢版 |
2018/03/01(木) 23:24:48.75ID:3FYR9rwV
芥川龍之介の念波、我が身に降臨せり
「何か僕の将来に対する唯ぼんやりとした不安である」
0473デフォルトの名無しさん
垢版 |
2018/03/11(日) 17:31:40.59ID:YfOd2t8w
LINQのWhereで
匿名関数に渡されるエンティティを他のメソッドに渡したりするとOneToManyを使う条件が動かない
これに気付かず小一時間無駄にした

エンティティの代わりにIQueryableを渡すことにした
こっちの方が書きやすいし条件を再利用出来る
0475デフォルトの名無しさん
垢版 |
2018/03/11(日) 20:22:34.72ID:H7ZYGUBL
C#だと、C++同じように書いてもずっと遅くなることがある。
それにメモリを多く食う傾向も。GCはどのタイミングではいるか分からないから、
スクロールの途中で入った場合は、まるでPC-8801のBASICで書いたプログラム
のように素人っぽいアプリになる。C++が使える人が使うのは推奨しない。
0477デフォルトの名無しさん
垢版 |
2018/03/11(日) 21:06:45.00ID:dxsKvpqu
C#はC++と違って速さではなく信頼性に重きを置いてるから仕方ないね
インスタンスはともかくアンマネージリソースは明示的に破棄するとか
ファイナライザ任せにしない等の言語に合わせた組み方をする他ない
0478デフォルトの名無しさん
垢版 |
2018/03/11(日) 21:37:01.15ID:3mhDegoW
C++経験者でC#のパフォーマンスが落ちたり不安定になる人は、そもそもC++自体のスキルが低いと思う
関数ポインタとか仮想関数とかちゃんと使えないんじゃないかな
0479デフォルトの名無しさん
垢版 |
2018/03/12(月) 00:27:58.41ID:BncytV2T
>>478
unsafe突入コストはどうにもならん。そんなことも分からないのはC#を碌に使ってないから。
0480デフォルトの名無しさん
垢版 |
2018/03/12(月) 01:14:18.76ID:reAzDpON
>>475
ちょっと工夫すれば避けられる場合も多いし、C++に戻りたくは無いなぁ。
どうにもならない場合はスピードが必要な部分だけC++にするけど。
0481デフォルトの名無しさん
垢版 |
2018/03/12(月) 01:30:27.94ID:f8Jdq3W8
>>479
unsafeはオーバーヘッド無いぞ
アンマネージコードとごっちゃになってるのかな?
C#を碌に使ってる人の言うことは違うね
0482デフォルトの名無しさん
垢版 |
2018/03/12(月) 01:37:18.32ID:P6b6g7+Q
C#のunsafeは使い勝手が悪いから使わないな
デバイス制御とかでポインタが必要ならC++でDLL化して、C#側はDllImportするだけだし
C++をちゃんと分かっている人なら大抵参照渡しで済ませるから、ポインタ使う必要ないよね

あとはWindowsAPIのDLLをそのままC#側にImportする手もある
C++の関数コールバックもC#側のdelegateで問題なく使える
0483デフォルトの名無しさん
垢版 |
2018/03/12(月) 01:37:30.03ID:uT1SaU/h
unsafeは不当に忌避されすぎだと思う
IntPtrとかいう実質void*を駆使したコードなんて、unsafeよりよっぽど危険だわ
ちょうど479のように、unsafeコード=アンマネージコードという誤解も未だに根強いし
0485デフォルトの名無しさん
垢版 |
2018/03/12(月) 01:49:12.81ID:BncytV2T
>>483
unsafe突入コスト → unsafeコード=アンマネージコード

おまえもか。脳みそに蛆でも沸いてるかと思うレベルの理解力。ほんと馬鹿は黙ってたほうがいい。
0486デフォルトの名無しさん
垢版 |
2018/03/12(月) 02:24:49.22ID:FoqPWURs
頭おかしい御仁、こっちにも湧いてござるなw
無益だから相手にしない方がいいよ
0488デフォルトの名無しさん
垢版 |
2018/03/12(月) 02:47:16.72ID:BncytV2T
> unsafeはオーバーヘッド無いぞ

> unsafeコード=アンマネージコードという誤解

こんな馬鹿レスしたあとにくだらない煽りか。低スキルにもほどがあるな。>>486
0489デフォルトの名無しさん
垢版 |
2018/03/12(月) 02:49:20.10ID:BncytV2T
必死にID変えて連投してるからいつもの知ったか馬鹿だな。

相手にした俺が馬鹿だったわ。
0490デフォルトの名無しさん
垢版 |
2018/03/12(月) 03:14:21.90ID:P6b6g7+Q
C++で内部のメモリ構造を考えていない人がC#を使うと
パフォーマンス落ちて不安定なコードになりやすい、っていう話なのに
なんでC#でunsafe使う前提になっているんだろう?
0493デフォルトの名無しさん
垢版 |
2018/03/12(月) 08:10:00.64ID:GwE+AuLl
>>478
自分はC++の仮想関数も関数ポインタも難なく使ってる。そして、C#は自分では使った
事が無い。でも、他人が作った.Net製のアプリを見て余りの遅さに.Netが普及しては
困ると思った。Vectorに登録されてるアマチュアのC/C++のプログラムでも見たことがない
ような遅さの.Netのプログラムをハードウェアメーカーが付属品として付けて来る。プロ
なのに。
0494デフォルトの名無しさん
垢版 |
2018/03/12(月) 08:46:33.45ID:9PWcyUIz
そりゃ単に作った奴の所為じゃないか…プロなんて生業というだけで
プログラマーと呼べない連中など腐るほど居るし、門戸が広ければ蔓延るであろう
JITコンパイルとか境界チェックとかコードセキュリティとかオーバーヘッドは有るけどさ
0495デフォルトの名無しさん
垢版 |
2018/03/12(月) 08:57:44.74ID:plqQ8wmf
XNAでゲーム作ってキャラクター10万個くらい出してもほとんど処理落ちしなかったのに
まともにコード書いた普通のソフトでそうそう遅くなるとは思えん
0496デフォルトの名無しさん
垢版 |
2018/03/12(月) 09:06:37.07ID:GwE+AuLl
.Netは間に色々入るのでCPUキャッシュの効きが悪くなり、キャッシュの多いCPUでは
C++のNative Binaryの2.5倍程度の遅さで済んでもキャッシュの少ないCPUでは急激に
遅くなる可能性があるかも。キャッシュミスがあると、数千クロックのオーバーヘッドが
生じるので、C++の1000倍くらい遅くなる可能性がある。
0500デフォルトの名無しさん
垢版 |
2018/03/13(火) 07:50:28.81ID:+XE+Afrc
[間違い(または嘘つき)記事発見]

以下のリンク先の速度比較で、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;
0503デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:26:57.36ID:uXOwNEDw
LINQだけでググるとこれが出てきてしまう。

LinQ(リンク)は日本の福岡県福岡市を拠点に活動しているローカルアイドルグループ。

この項目では、女性アイドルのローカルグループ LinQについて説明しています。
統合言語クエリ LINQについては「統合言語クエリ」を、その他のLINQについては「リンク」をご覧ください。
0504デフォルトの名無しさん
垢版 |
2018/03/15(木) 01:43:05.50ID:YiCrPUAa
C#が遅くないとか言ってる奴に限ってアセンブラ経験がない。C#信者はVB厨とJava厨と同じレベル。
0506デフォルトの名無しさん
垢版 |
2018/03/15(木) 02:23:16.87ID:+SvmgWRO
設計思想が異なる対象まで遅いだの速いだの言語価値はそれだけかよ
ソースが同じなら処理も同じなんて考えるのが居たらdでもない事だ
C#やILのコンパイラに瑕疵があるのなら然るべき所へ報告すれば良い
0508デフォルトの名無しさん
垢版 |
2018/03/15(木) 07:41:56.53ID:Q6W0fGhF
>>505
AWS Lambda使ったことないと誤解を生みそうな記事だなこれ
Lambdaのランタイムのオーバーヘッドを測ってるだけで、実質的なコードの実行時間はほとんど関係ないよこれ
0509デフォルトの名無しさん
垢版 |
2018/03/17(土) 01:17:02.15ID:NeV8ANw7
プログラムを書いていてちょっと迷ってると、VisualStudioがメソッド等について説明の吹き出しみたいなのを出してくれるけどさあ
あそこに出てくる説明の文章部分ってどうやって作るの?
0513デフォルトの名無しさん
垢版 |
2018/03/17(土) 12:57:36.02ID:AuL8ibAm
さすがにアセンブラ経験なしでここで相談に答える馬鹿はいないだろ。ILだってまともに読めないだろうし。
0523デフォルトの名無しさん
垢版 |
2018/03/18(日) 00:20:42.25ID:1gnxon3r
タグが増えると容量が増えてgzip圧縮に対応してへんブラウザやとしんどいねん
VBコンポーネント使ってるやつとかな
0526デフォルトの名無しさん
垢版 |
2018/03/18(日) 13:01:57.77ID:DhSuPqdW
規模が大きくなるとただでさえVS重くなるのにReSharper有効にしてると耐えられないレベルになる
VSCodeのC#サポートがもうちょっと賢くなれば移行したい
0533デフォルトの名無しさん
垢版 |
2018/03/25(日) 17:37:06.67ID:Kz38QhUD
>>530
この理由で頑なにfor使っている人居るけど、100万回でms単位の差で選ぶとか阿呆としか思えない
0534デフォルトの名無しさん
垢版 |
2018/03/25(日) 18:00:33.42ID:CFRLNyhX
業務系c#開発でgitって使えるもん?
開発規模が社内だけなら面倒なだけな気がするんだけど、シェア考えると今からsvnは無い気もして
0537デフォルトの名無しさん
垢版 |
2018/03/25(日) 18:51:32.94ID:5W/AOyKW
ギョーミーは50万年くらい遅れてそうでいいよな
まだ旧人類やってても優秀な方にランキングされるようだぜ
0538デフォルトの名無しさん
垢版 |
2018/03/25(日) 19:19:43.57ID:Ol/c1EKt
業務系は下請けに出さないとgitサーバーも立てられないからな
世界的に有名な大企業でもまじでそんな感じ
0541デフォルトの名無しさん
垢版 |
2018/03/25(日) 20:43:54.92ID:i4WOJiDa
いまの若い子はSVNの使い方知らないからやめといたほうがいいよ
Gitにしか出来ないと思い込んでるから何も努力しなくなってるしな
Git一択だわ
0542デフォルトの名無しさん
垢版 |
2018/03/26(月) 00:42:43.54ID:/vsZTBgt
若い人は○○系の話って大抵若い人がそれを必要とする時点で絶滅しかかってるんだから知らなくて当たり前なんだよね
だからむしろ知ってた時に驚くのが普通なのになぜか知らないことに驚くというのが意味不明
0543デフォルトの名無しさん
垢版 |
2018/03/26(月) 09:43:42.51ID:8YZVU2Fa
中小業務系とか素人スタートが数年居ればベテラン扱い
gitどころかバージョン管理?なにそれおいしいの?状態
0547デフォルトの名無しさん
垢版 |
2018/03/26(月) 18:14:54.05ID:8YtYtYXk
>>533
ゆとり馬鹿はほんと数学ができないんだな。
0550デフォルトの名無しさん
垢版 |
2018/03/26(月) 19:10:15.04ID:8YtYtYXk
>>548
>、100万回でms単位の差で選ぶとか阿呆としか思えない

おまえも仕事したことない無職なんだろうけど、リアルな話、
こんな馬鹿が一人でも混じってたら糞コードを大量コミットしてデスマーチになってしまう。
年金システムにはこういう馬鹿が大量にいたんだよな。
0552デフォルトの名無しさん
垢版 |
2018/03/26(月) 19:16:39.45ID:8YtYtYXk
>、100万回でms単位の差で選ぶとか阿呆としか思えない

日本のスマホゲームはポチポチゲームばかりらしい。
こういう馬鹿な考えのヤツばかりでリアルタイムの仕様を理解できるやつがほとんどいないんだろうな。
そんな馬鹿がasync/awaitで知った気になってテスト不能のアホコードを大量に書く。
昔から、馬鹿の尻拭い=同期のバグなんだよな。
0553デフォルトの名無しさん
垢版 |
2018/03/26(月) 19:18:04.23ID:8YtYtYXk
ID:2N4AiZYB ←低脳煽りばかりで技術的なレスは一切しない馬鹿。技術的なレスすると馬鹿がバレるからな。

> 100万回でms単位の差で選ぶとか阿呆としか思えない
0554デフォルトの名無しさん
垢版 |
2018/03/26(月) 19:31:21.32ID:FkhRj4gx
アホみたいなスマホゲーム作ってる会社こそ、優秀な人材が集まってるんだぞ
アホみたいに儲かるからな
0556デフォルトの名無しさん
垢版 |
2018/03/26(月) 19:45:10.16ID:jqdLEFhA
ループの中身もガワも大事
ガワが簡素ということは保守のしやすさに繋がるんだから、それなりのスペックのマシンで動かせる前提なら高速化のための最適化をガチガチにするより
オーバーヘッド大きいけど簡単に書ける方法を採るべき
その判断をせずいかなる場合も高速なのが正義というのは技術に酔ってるだけ
0558デフォルトの名無しさん
垢版 |
2018/03/26(月) 20:25:24.50ID:oo+qoL1t
速度だけならC#よりVB6のほうが早いわけで、C#には速度以外のものが求められていると思うんだわ
勿論早いに越したことはないが
0569デフォルトの名無しさん
垢版 |
2018/03/30(金) 23:05:49.35ID:AQTRuZFc
Console.WrteLine("{0}です", number);と
Console.WriteLine(number+"です");だとどっちがいい?
最初の方をよく使うんだけど
0570デフォルトの名無しさん
垢版 |
2018/03/30(金) 23:10:00.95ID:NFQ/XCwQ
「どっちがいい」の基準が分からん
string.Formatでも同じだが可変要素が多いときは上の方が分かりやすいとしか言えない
0572デフォルトの名無しさん
垢版 |
2018/03/30(金) 23:19:57.93ID:AQTRuZFc
某プログラミング言語勉強サイトで後者で打ってる模範があって見にくくてつい質問をしてしまった
0577デフォルトの名無しさん
垢版 |
2018/03/31(土) 01:14:29.83ID:6wN5DSYc
国内のドカタワールドはC#2.0で早くも息切れしてきて3.0で脱落者が出始めて4.0以降はほとんど追従できてない酷い有様
string interpolationなんて抜群にドカタ向きだから、dobonあたりが取り上げて宣伝したら流行ると思うけどね
0579デフォルトの名無しさん
垢版 |
2018/03/31(土) 08:32:15.65ID:9aphfiP0
EFの文脈で$@"select * from Foos where {p}"って書くとちゃんとプレースホルダーに置き換えてくれるってので感心した
0581デフォルトの名無しさん
垢版 |
2018/03/31(土) 11:12:51.16ID:Jc8iX6Rx
C#7.0-7.1は6までちゃんとキャッチアップできてる現場なら自然に受け入れられるものだけど、C#7.2はヤバい
C++厨こじらせた奴がチームにいたらカオスになりそう
そして8.0ではついにnull非許容参照型が導入され、年内には現在ある全ての既存C#コードに対して膨大な数の警告が出るようになる
0582デフォルトの名無しさん
垢版 |
2018/03/31(土) 12:26:40.13ID:9aphfiP0
最高じゃねえか
ついてこれないレガシー人材も放置されてるレガシーシステムも要らん
0583デフォルトの名無しさん
垢版 |
2018/03/31(土) 12:41:52.94ID:O8yBke8L
そもそもプログラミングは低脳がやっていい仕事じゃねーからな
この期に日本式の文系マと専門学校マは全員処分したらいい
0584デフォルトの名無しさん
垢版 |
2018/03/31(土) 12:44:53.69ID:1xZcLHDp
>>583
文系かどうか、専門学校出かどうかは、本質とは関係ないのではないか?
馬鹿なやつを特定して排除するならまだしも、経歴 **だけ** で判断するのはいかがなものか?
0586デフォルトの名無しさん
垢版 |
2018/03/31(土) 12:49:40.91ID:iWayTg8I
レッテル貼りして思考停止して片付けるのは楽だよな
>>581
現状でもVSで推奨されないことに「メッセージ」は出るけど「警告」は出ないぞ
下位互換無くすのなら別の問題になるけどな
0588デフォルトの名無しさん
垢版 |
2018/03/31(土) 14:00:03.82ID:VKIypx1l
そもそも納品物がヌルポでよく落ちるのは単体テストをしない、手抜きだからであって、
新機能を好んで使う馬鹿は、null非許容参照型を導入しようとテストをしないのは変わらないわけで、
むしろバグが隠蔽される。VBのOn Error Resume Nextのバグ隠蔽機能の再来。

varと同様、コード品質を落とすアホ機能である。
0591デフォルトの名無しさん
垢版 |
2018/03/31(土) 14:30:41.24ID:wdgleLdA
単体テスト
・関数単位のテスト
・アプリケーションをビルドして作成・修正した箇所を開発者本人が動作確認するテスト

大きくわけてこの2種類の解釈
xUnit世代は単体テストってアレだよねっていう共通認識があるかもしれないが
老舗企業でそんな意味で単体テストっていう言葉を使うと恥をかくぞ
0592デフォルトの名無しさん
垢版 |
2018/03/31(土) 14:35:37.85ID:wk3pjuZy
>>587
if (arg == null) throw new ArgumentNullException(nameof(arg));
とか
Assert.That(Hoge(), Is.Not.Null);
みたいな頭の悪いチェックやテストケースが不要になる
0593デフォルトの名無しさん
垢版 |
2018/03/31(土) 14:52:49.36ID:9VGsIMix
>>588
一般に、新しいものを使いたがるPGの方がスキルが高いので品質も生産性も高いよ
もちろん、メンバーの状況によっては縛りをかける判断が適切な場合もあるけど、
それはあくまでスキルの低いメンバーの生産性と品質の低下を避けるためだ
新しいものを使いたがる系の奴に古いものを強制しても、生産性と品質が大きく低下することはない
0595デフォルトの名無しさん
垢版 |
2018/03/31(土) 16:25:39.38ID:TBBYBavK
新しいフレームワークに飛び付く層はモチベーションの影響で生産力はあるかも知れないが、スキルが高いかというと微妙
0596デフォルトの名無しさん
垢版 |
2018/03/31(土) 17:11:47.69ID:wolthb3Z
varって気を付けないと000abdだと整数読み込みでするからstringで扱う時はstringでやるわ
0601デフォルトの名無しさん
垢版 |
2018/03/31(土) 19:27:52.75ID:xFqugWHj
ユニットテストを意識するようになればメソッドやクラス構成マシになるのに、どうせ単体テストやるしと数百行のメソッド大量生産の俺社
0602デフォルトの名無しさん
垢版 |
2018/03/31(土) 19:38:17.35ID:wdgleLdA
メソッドは原理原則通り20行まで・・・ってのはやりすぎかもしれんけど
全ては関数にわけられるだけわける
1つの関数に2つ以上の機能があれば冗長だとは思う
0603デフォルトの名無しさん
垢版 |
2018/03/31(土) 20:01:38.03ID:FNt76Udy
関心事が1つであるべきだよ
機能数は複数あってもいい
例えば顧客オブジェクトを取得する/作成する/更新する/削除するための顧客リポジトリ
こいつの機能は4つだが関心事は顧客オブジェクトの永続化という1つだけ
0604デフォルトの名無しさん
垢版 |
2018/03/31(土) 20:41:54.64ID:fnj+62QA
>>602
でもやたら関数に分けまくるのもやり過ぎの悪例だからなぁ
一行メソッドのたらい回しとか可読性低すぎて引き継いだとき殺意が湧くし
0605デフォルトの名無しさん
垢版 |
2018/03/31(土) 21:12:12.52ID:FNt76Udy
1行でも意図が明確化するならメソッドにする
C++とかやってきた人なら当たり前の感覚なんだけどね
0606デフォルトの名無しさん
垢版 |
2018/03/31(土) 21:20:51.16ID:FNt76Udy
Expression Bodyのプロパティやメソッドがなぜ導入されたのか
1行のプロパティやメソッドはそれだけ使用頻度が高いってこと
0607デフォルトの名無しさん
垢版 |
2018/03/31(土) 21:50:23.14ID:lRCajebl
バカが書くオブジェクト指向()を舐めるなよ?

あいつら『かめはめ波()』の機能を
か()
め()
は()
め()
波()
にするレベルでバカだからな
0608デフォルトの名無しさん
垢版 |
2018/03/31(土) 21:55:29.44ID:+WsDcfNX
意味を理解しておらず側だけ真似するからそうなる
猿は木の実でも取ってろ
0609デフォルトの名無しさん
垢版 |
2018/03/31(土) 21:57:45.44ID:g9lQ5N9X
独立している機能なら一行でも良いが
一連の塊で動いてる機能を再利用性の欠片もないパーツに切り分ける奴は頭が悪い
しかもその切り分けた関数で他の関数を実行してたらそれはもうただの難読化だ
0610デフォルトの名無しさん
垢版 |
2018/03/31(土) 23:47:58.41ID:U08lgUq5
>>607-609
バカw
0612デフォルトの名無しさん
垢版 |
2018/04/01(日) 07:24:17.48ID:su2Mei6j
>>606
これが答えだよ
Microsoftや達人プログラマ達は1行メソッドの価値を理解して言語仕様まで変えてしまった
それほどまでに重要なものってことだ
一方で雑魚プログラマのお前らは価値を理解できずにぐちぐちと文句を言う
程度の低さを伺えるね
0614デフォルトの名無しさん
垢版 |
2018/04/01(日) 08:32:44.17ID:IPSX8M4/
プログラム構造が見渡せる行数になれば、ソレ以上の細分化は無意味なんだけどね
メソッドの分割は中身を理解しやすくするのが最大の目的で、それを阻害するほど分割したら意味がない
0615デフォルトの名無しさん
垢版 |
2018/04/01(日) 08:45:42.44ID:x6ZL87kc
俺もコメント代わりに分けまくる派
純粋関数で責任が明確なら可読性は上がるよ
0616デフォルトの名無しさん
垢版 |
2018/04/01(日) 08:59:28.91ID:s6sGDINL
一目見たら分かる処理をオレオレ命名で飛び地化
お一人様開発なら良いがチームでやんなよ
0621デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:25:16.65ID:P1fWuhY2
>>614
中身を理解しやすくするのは実装の仕事
メソッド化する最大の目的は実装と意図を分離すること
僕が引用したリンク先でマーティン・ファウラーがわかりやすく説明してくれてるからぜひ読んで欲しい
0622デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:28:59.77ID:s6sGDINL
三行で書かれてるコードならその場でその三行を修正するだけで済むが、
それを三つの関数に分けるとわざわざ別の行までスクロールして修正する作業が三回発生する

どちらが効率的で生産性が高いのか普通なら考えるまでもなく分かることだが、自意識過剰なバカには分からないのかも知れない
何せ自分のことを『達人』とか思い込んでるレベルのバカだし
0623デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:33:48.86ID:su2Mei6j
>>620
コードで表現していることを関数名で抽象化するんだよ
抽象化はプログラミングをする上で最上級に重要な概念だけどどうもIQが凡人以下だと理解できないらしい
物事を理解するにはその内容に応じた知能がどうしても必要になる
凡人が数学者や物理学者に成れない
難しい概念がわからないという感覚は人としてどうしようもないものなんだ
だからこのスレにも抽象化がわからない人が居てもおかしくはない
0624デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:36:24.52ID:fxgoPYx5
>>622
場合によるんじゃないかな?
その一行が何度も出てくるなら関数化したほうが修正が楽

何百回修正するか
一回修正するか
0625デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:38:21.16ID:su2Mei6j
>>622
そのコードがなんのためにあるのかということを考える作業が3回も発生する

そのコードを変えて他に影響がないか確かめる作業が3回も発生する

同じことを他の場所でしていないか確かめる作業が3回も発生する

酷い無駄だ
0626デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:39:10.89ID:fxgoPYx5
関数化で抽象化はされる

抽象化された関数で何をやってるか詳しく関数名に入れると無意味なことになることもある
むずかしいよね
0627デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:40:28.60ID:s6sGDINL
bool IsEmpty() => this.Length == 0;

このレベルの実装であれば何も文句はないが、大半はそうじゃないのが現実
0628デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:40:36.80ID:x6ZL87kc
適切な直行化ができてれば、一連の処理の流れに関わる多数の関数を一緒に修正するなんてことはそうあるものではない
その程度のスキルレベルなら分け過ぎはよくないのは同意する
0629デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:42:35.89ID:fxgoPYx5
もともと一行関数だったものが徐々に成長していくこともある
でも呼び出し元のコードは変わらない
ロジックが変わってないからね
これは大変素晴らしいことだと思う
0630デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:46:33.53ID:x6ZL87kc
十分に責任の明確化ができている関数は中身を見る必要が無くなる
不要になって消すことはあっても中身を弄ることはめったにない
この名前でこの引数を受け取るならこの結果が返るのが当然、と思えるのが正しい関数だ
0632デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:52:46.42ID:qsRAuR+m
>>631
そのレベルの現場ならCOBOLみたいにMOVE羅列してる方マシだね
世の中そういうところばかりではないから文句があるならさっさと転職しろ
0633デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:54:39.84ID:fxgoPYx5
コードを書いてる時点で将来をすべて予見できるような素晴らしい環境にいるならいいけど
大体はそんなことはない

仕様を考えたのが他人であろうと自分であろうと
0634デフォルトの名無しさん
垢版 |
2018/04/01(日) 10:25:24.90ID:EnMpGyAP
>>631
範囲を扱うアルゴリズムに使わせる目的で使うイディオムだよ
こうしておけばプリミティブの数値も数値っぽい型(例えば巨大整数クラス)も同じように扱える
ようするにただのストラテジだな
0635デフォルトの名無しさん
垢版 |
2018/04/01(日) 10:45:43.34ID:EnMpGyAP
まあ正直C#で>>631は無意味とは言わないまでも違和感あるけどな
>>631もC#だけでなくc++とか経験してみるとこういう短い関数の真価を理解できるんじゃないかな
0636デフォルトの名無しさん
垢版 |
2018/04/01(日) 11:56:21.61ID:T3P5Wj+0
巨大整数とか仕様にカスリもしない未来を妄想して複雑化して「これがシンプルなんだよ!」と強弁するとかアホの典型だな
グループ開発の経験もない無職かよ
0638デフォルトの名無しさん
垢版 |
2018/04/01(日) 12:12:43.78ID:qPjZABJK
最初から無駄に俺様カスタマイズしたがるのはこじらせたC++erによくあるYAGNIだね
そして、Incrementの例のように基礎的な部分には異常に拘るくせに普通のアプリケーションコード部分は巨大なメソッドを生産する奴が多い
その割にはポインタ演算は大好きで、配列操作になるとウッキウキしてクソ低レベルなアスタリスクと++だらけのコードを垂れ流す
そういう連中だよ
0640デフォルトの名無しさん
垢版 |
2018/04/01(日) 12:42:38.07ID:5IsFylKp
ふらっとも伸びているようだし承認欲求に飢えているアホどもが暴れているのか
0643デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:07:10.47ID:wUP/Qru9
どんな面白い問題で盛り上がってるのかと思ったらしょうもな。

(1) 道具が多すぎる道具箱は使いづらい

からと言って

(2) 短すぎるメソッドは「無駄な道具」である

などと言えるわけがない。
そうである場合もない場合もあるに決まってる。

こんなくだらない話でよく盛り上がれるな
0644デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:16:23.13ID:Q3bP29mI
>>643
だから無駄な道具を乱造して散らかす奴が悪いんだろ?
いくら「これが正しい!」と喚いてもゴミ屋敷をスマートとは言えんわ
0645デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:24:59.02ID:EnMpGyAP
なんかずれてんな
いやわざとか?

みんな「1行コードはクール」
みんな「いや害悪だ」

>>631「1行コードにはこんな意味不明な頭悪いコードが実在するんだぜぇ」

>>634「いやーそれはストラテジでしょ。普通のコードだよ」

あほ「巨大整数ガー!ゴミ屋敷ガー!」

途中から明後日の方向に向かってんだよ
一例に過剰反応バカが湧いてきたあたりからね
0646デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:28:56.88ID:IPSX8M4/
一つ言えるのは、一行コードをセンスが無いやつが書くとゴミクズになるってことだな
まあ何行でもゴミと言えるかもしれんが、一行のゴミはメンテする時腹が立つ
0647デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:30:25.54ID:EnMpGyAP
1行メソッドの利点を理解できないアホが逆ギレしてるだけのパターンもあるということは忘れないで
0648デフォルトの名無しさん
垢版 |
2018/04/01(日) 14:14:15.06ID:tywMjCxA
一行のゴミにも何か利点はあるはずだと頑なに改めようとしない>>647なのであった

マジでゴミ屋敷の主だな
0649デフォルトの名無しさん
垢版 |
2018/04/01(日) 14:20:30.29ID:G1/6VWB7
>>645はstrategyも理解してないアホの子だから許してあげて
ただのラッパーを戦略と勘違いしてるなんて、きっと今年の春から働き始める新人だから
0650デフォルトの名無しさん
垢版 |
2018/04/01(日) 14:28:00.99ID:tywMjCxA
上司「なんでこのインクリメントを関数に分けてんの?」

新人「様々な型に対応する為のストラテジです!巨大整数などにも対応できます!」

何というか無能な働き者って言葉がしっくり来るな
たぶんこいつは誰からも理解されずに五月病患って数ヶ月で退職するわ
0651デフォルトの名無しさん
垢版 |
2018/04/01(日) 14:39:00.26ID:yKN9r4eJ
インクリメントの(多相じゃなくて正しい意味での)ストラテジって何だろうね
++とInterlocked.Incrementを切り替えるとか?
エイプリルフールネタにもならんな
0654デフォルトの名無しさん
垢版 |
2018/04/01(日) 15:13:55.41ID:WEVo4Vkx
ゆとり世代はなんでも揃ってるところからスタートだから楽でいいよな
iteratorの実装なんて考えたことすらないんだろう
羨ましいよ
0656デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:15:29.85ID:4YlUj4T1
>>650
何で巨大整数に対応する必要ない状況を前提としてるの?
対応すべきという状況を前提とした途端に真逆の結論になると思うけど
0658デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:45:28.27ID:Ek+Kt6QK
巨大整数対応を勝手に仕様上あり得ないことにしている点
「○○にも対応できるように」の○○に巨大整数を入れるのはあくまで一例であり他にも山ほどあり得る点
この辺りが問題かな
言われた通りの物を納品すればいい所謂IT土方系の環境なら問題にならないんだろうけど
0659デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:47:21.74ID:Aa3HndXz
>>656
対応すべきという状況を前提にしたとしても、>>650の新人がストラテジパターンを誤解している阿呆であるという結論は覆らない
>>631を型ごとに用意するのは一般にはパラメータ多相、あるいは単にオーバーロードと呼ぶんだよ
0660659
垢版 |
2018/04/01(日) 17:49:35.48ID:Aa3HndXz
すまん訂正
パラメータ多相じゃなくてアドホック多相だな
0661デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:49:42.89ID:Ca3RLpqD
この手のっていつも「自分の前提」の元に議論初めてかみ合わないんだから止めとけよ
ネタが下らないことだし、そんなことにこだわるしかやることないのかよ
0662デフォルトの名無しさん
垢版 |
2018/04/01(日) 17:53:38.19ID:8TyNtssw
int型をBigInt型に切り替える必要が生じたとして、
型宣言から書き直さないといけないのにインクリメントを分離しておいて何が効率化できたというのかと
そもそもオブジェクト指向に則ればその型自体にインクリメントを備えるだろっていう

現実に設計したこともない新人が本の知識で言ってるだけだなこりゃ
0663デフォルトの名無しさん
垢版 |
2018/04/01(日) 18:21:49.73ID:8TyNtssw
正しい設計
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) 処理
↑型の数だけオーバーロードする必要がある
0665デフォルトの名無しさん
垢版 |
2018/04/01(日) 19:40:56.03ID:WEVo4Vkx
>>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);
}
}
0666デフォルトの名無しさん
垢版 |
2018/04/01(日) 19:44:56.66ID:WEVo4Vkx
>>663
なんでBigIntのソースが手元にある前提なんだよ
まあ素人は標準のパッケージ以外を持ってきて使うなんて経験はないのかもしれんから間違えても仕方がないか
君素人っぽいし
0667デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:02:44.23ID:c1epJvM3
>>665
惜しい。一旦クールダウンしてよく考えよう。
同じ入力(コンテキスト)に対して複数のStrategyを定義し、状況によって使い分けるのがStrategyパターンだ。
一方incrementの場合、実装は入力の型に応じて一意に決まるだろ?「同じ入力」に対して複数の実装があるわけじゃない。
そういう、引数の型に応じて静的に実装を選択するのを一般に「多相」という。
特に、君のコードは関数型言語で型クラスと呼ばれるものに近い。ググってみると勉強になるよ。
0668デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:08:31.72ID:WEVo4Vkx
>>667
1つ飛ばしでイテレートしたい場合とか同じ型でも幾らでもバリエーションは考えられるわけだがわかんねえだろうな用意されたもの使うだけのゆとりには
0670デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:13:25.61ID:WEVo4Vkx
>>669
あらゆる物事に対してそれを理解するために必要な知能の下限が存在する
これって1つの真理だと思うのよ
0671デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:20:07.28ID:PinoCRrg
>>670
funcって何?
funcObjって何?
miって何?
mxって何?
Execって何?どういう機能?
BigIntでAdd?コレクションなん?

パッと見ただけでこれだけ疑問が湧くんだが、
プログラマ百人に聞いたら百人が死ねって返すレベルのクソだぞこれ
命名だけでバレる実力なら無理して書くなよ
0672デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:22:40.27ID:c1epJvM3
>>668
そうだね。確かに君の言う通りだ。
じゃあ君はなぜ>>665でわざわざジェネリックを使ったのかな?
>>665を見た殆どの人は、型に応じて++の実装を切り替えたいのだろうと思うだろうね。それを君はストラテジだと言っている。
このままでは誤解してしまう人もいるだろうから指摘したんだよ。
君自身はもしかしたら本当は正しく理解してたのかもしれないけど、衆目に晒すにはあまりにも不適切なレスだ。
0673デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:25:32.72ID:WEVo4Vkx
文脈読めない、中心になってる話題を理解して枝葉末節を気にしない、っての実践するにもある程度の知能が必要なんだろうなー
そういうの苦手な人ってミーティングの時とか相当鬱陶しがられてると思うから注意したほうがいいよ
0675デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:30:19.04ID:Aa3HndXz
>>673
悪いけど、文脈を読んだら>>665のコードは100人中100人が型++を切り替えようとしてるのだろうと解釈すると思うぞw
0677デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:40:22.21ID:WEVo4Vkx
>>672
ジェネリックかどうかは関係ない話だろ
この例も仮にスクリプト言語だったら型引数は無くても動作する
たまたま型の指定が必要な言語を例に使ったからジェネリックになっているだけ
しかしそのエッセンス自体は何も変わってない
まずはそこを理解しよう
0678デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:54:39.80ID:G1/6VWB7
>>665を読むとこいつうちにいた新人より頭悪い気がする
ストラテジとか言いながらやってることが関数型だし
これでデザパタのつもりなら学校通い直すのを勧める
0679デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:55:42.47ID:WEVo4Vkx
ここでいうエッセンスというのは
* 処理の一部を外部から与えることによってアルゴリズムを交換可能にするテクニックをストラテジーパターンと言う
* ストラテジーはしばしばインクリメント処理のように非常に小さな処理になることがある
* その一例が>>631であり>>631馬鹿げたコードでもなんでもなく実用的なコードの断片である
という3点のことな
0680デフォルトの名無しさん
垢版 |
2018/04/01(日) 20:59:08.51ID:WEVo4Vkx
>>678
λや関数オブジェクトがサポートされる言語では暗黙的にストラテジーの考え方が利用されている
そうと意識してないだけだ
ちょうどいい時期だ上司に頼んでお前も新人研修受けてこい
0681デフォルトの名無しさん
垢版 |
2018/04/01(日) 21:00:23.18ID:GxluVQTa
何も見せてなければ何とでも言えたろうが、
>>665を見せてしまったらもう無理だな
レベルの低さが露呈してるから言い訳にもならない

正直>>665を見たあとだと>>631が優秀に見えるくらいだし
0684デフォルトの名無しさん
垢版 |
2018/04/01(日) 21:11:29.38ID:G1/6VWB7
そもそも関数の細分化は可読性を損ねるって話なのに、
抽象的で省略しまくりの名前付けてる時点でな
設計に口出すのは十年早いと思うわ
0685デフォルトの名無しさん
垢版 |
2018/04/01(日) 21:17:25.87ID:GxluVQTa
どうでも良いが>>665をよく見るとこいつrefの使い方すら知らないど素人くさいな
値次第でループバグ起こす構造だしこんなコード実務で仕込まれたら俺ならテロ認定する
0687デフォルトの名無しさん
垢版 |
2018/04/01(日) 21:24:13.70ID:GxluVQTa
本気で書いたコード貶されたら

「あれは手抜きだからw」と言い出す

まあリアルにいるよな
0690デフォルトの名無しさん
垢版 |
2018/04/04(水) 16:05:17.38ID:h/TS8w43
stringが参照型ってことはさ

string str;
void Reset() => str = "";

とするより

string str;
string None = "";
void Reset() => str = None;

と生成済みのテキストを使い回した方が効率良いの?
0694デフォルトの名無しさん
垢版 |
2018/04/04(水) 20:17:49.55ID:dY0QYfwJ
>>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));
0701デフォルトの名無しさん
垢版 |
2018/04/05(木) 08:16:57.82ID:G4evJUNh
アメリカではソフトウェアの内製化やクラウド化により、
ソフトウェアは自己責任でどんどんリリースできるようになってるの
自己責任ならデグレ出したらこっそり直してすぐにリリースしちゃえばいいの
SI型ビジネスとは違い、過剰にリスクを避ける必要がない
VSやC#もそういう変化に適応して開発やリリースのポリシーが変わってしまった
もうジャップランドのSIでは使えないよ
0705デフォルトの名無しさん
垢版 |
2018/04/05(木) 14:39:36.05ID:9mHHHg+P
リッチテキストボックスでDetectUrlsをTrueにしてハイパーリンクを開けるようにしたんだけど、
ハイパーリンクをクリックして既定のブラウザで開くと、勝手に最終行までジャンプしてしまう。
仕方がないのでEnabledをいったんfalseにして、その後開き、もう一度trueに戻すとジャンプはしなくなったんだけど、
リッチテキストボックスの任意の場所をクリックすると、やっぱり変な場所に表示が移ってしまう。
なんか対策ないでしょうか?
0706デフォルトの名無しさん
垢版 |
2018/04/05(木) 14:43:10.44ID:L1xJuAmc
>Enabledをいったんfalseにして、その後開き、もう一度trueに戻す
ごめん何言ってるのか全然わからない
0707デフォルトの名無しさん
垢版 |
2018/04/05(木) 14:44:33.22ID:9mHHHg+P
>>706
すいません、こうです
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
richTextBox1.Enabled = false;
System.Diagnostics.Process.Start(e.LinkText);
richTextBox1.Enabled = true;
}
0708デフォルトの名無しさん
垢版 |
2018/04/06(金) 01:34:01.86ID:CRWC4s8a
treeViewのちらつき防止ってどうやるんだろう?
5chブラウザとか、mousemoveでテキストにアンダーラインが出るようにしても全然ちらつかないよね
ダブルバッファでいけるのかと思ったら、treeViewはそれでは解決しないようで・・・
0709デフォルトの名無しさん
垢版 |
2018/04/06(金) 17:11:38.73ID:YfcQQia/
>>705
ミニマムコード書いて確認しろよ
クリックした位置にカーソル出ないのなら分かるが勝手に最終行までジャンプとか意味不明
あと初心者スレ池
0710デフォルトの名無しさん
垢版 |
2018/04/06(金) 19:56:07.03ID:/br3WlRA
>>700
もうここ10年新規案件やってないな。全部Javaに持ってかれたまま。
当然といえば当然だな。老害ヘジの暴走を誰も止めることができなかった。
ID:d442a5v8 ←みたいな低スキル信者の取り巻きばっかなんだろうな。
0712デフォルトの名無しさん
垢版 |
2018/04/06(金) 20:29:12.80ID:z7q8Sb4V
会社で生産管理ソフト導入したらそれ.netだった
描画はネイティブのDLLに丸投げだったけど
0714デフォルトの名無しさん
垢版 |
2018/04/07(土) 07:53:48.13ID:qEuioEYI
業務だと冗長でもいいからバカでも使える単純な機能だけで組まなきゃいけない
三項演算子程度のものも使用禁止
C#とは無縁の世界
0715デフォルトの名無しさん
垢版 |
2018/04/07(土) 07:59:59.71ID:h+NQtj0i
それだけじゃ足りない
どんな初心者、いろんな人が保守しても長期間にわたって大きく崩さないような土台を建てる必要がある
超絶技法で難解なプログラムを作るよりよほど難しい
0716デフォルトの名無しさん
垢版 |
2018/04/07(土) 08:48:38.33ID:4H5fCx9/
そして冗長でコピペだらけの巨大なシステムが出来上がって別の意味で保守できなくなるんだろ
業務系ってそんなシステムばっかりじゃん
誰でも読めるようにひらがなだけで六法全書を書く並みにバカ
余計わかりにくくなるだけ
0717デフォルトの名無しさん
垢版 |
2018/04/07(土) 09:06:01.54ID:JAl7hTiY
それは分かりやすさというより開発のスケーラビリティの問題
日本のSEってトップダウンのコード設計が全くできないから、
開発規模をスケールさせようとすると重複上等でなるべく個別の機能ごとに独立した形にするしかないの
0718デフォルトの名無しさん
垢版 |
2018/04/07(土) 09:59:33.70ID:4H5fCx9/
重複した分だけ開発・保守工数が増えてくから重複上等じゃスケールしないよ
あっちでバグがあった、仕様が変わった、横展開しろ、って炎上の王道パターンだよね

つかわかりやすさの問題だ
言語機能は便利でわかりやすいから追加された
それを使わないということはそれだけわかりにくくなるということ

ベタなループ書くよりLinqの方がわかりやすいからLinqが発明された
そういうこと
0719デフォルトの名無しさん
垢版 |
2018/04/07(土) 10:56:32.14ID:BpE5vbQJ
20年以上前から言語機能では勝負してないと思う
そういうのよりミドルウェアの有無などのほうが業務でjavaが選ばれる理由だと思う

一から新しいものを作らないといけないか既存のものを使えるかが分かれ目
業務で必須のDIとかそういうのをしっかり土台ができているのか

c#はそういう所でjavaに負ける
0720デフォルトの名無しさん
垢版 |
2018/04/07(土) 11:18:40.70ID:9qiuAsep
Javaなんて、Android向けのクライアント開発なければどうなのよ??
今業務でもサーバーサイドJavaなの??
んなわけないよね?
0721デフォルトの名無しさん
垢版 |
2018/04/07(土) 11:22:17.68ID:BpE5vbQJ
業務系のロジックは大体javaだよ
一般的に開発求人といえばjava

大規模になればなるほどjava以外の選択肢はなくなる
0722デフォルトの名無しさん
垢版 |
2018/04/07(土) 11:30:53.53ID:e9I+7Iw0
今時ミドルウェアやサービスに大した差はないってのが現実
そもそもプラットフォームや言語を選ぶ時点でそのミドルウェアは候補から外していい

>>720
Javaで書かれたサーバーサイド資産は大部分がメンテナンスモード
新規開発はかなり減ってる
0725デフォルトの名無しさん
垢版 |
2018/04/07(土) 16:44:15.68ID:1YUEtCB1
EXCEL(xls形式)のデータを読み取って何らかの処理を施して別ファイルに書き込みたくてNPOIについて調べてるんだけど
セル内文字列の一部に文字飾り(取り消し線、上付き、下付き)がある場合にどの文字飾りか判定できる方法ってない?(文字飾りを反映させて別ファイルに移すために)
HSSFRichTextStringとして読み取ればnumFormattingRunsが文字飾り有無で文字列を分割した際の部分文字列数となることは分かった
getFontAtIndex、getFontOfFormattingRunで指定箇所の文字飾り情報が分かると思ったんだけどこれで得られる数値が同じ文字飾り種類でもコロコロ変わってよく分からない状態
0726デフォルトの名無しさん
垢版 |
2018/04/07(土) 16:47:16.96ID:tI04O4km
Javaエンジニア「インスタンスメソッドは難しい。インスタンスを禁止して初心者でも理解できるstaticメソッドを使おう。」

Javaエンジニア「ファイルが沢山あると初心者が混乱する。クラスを禁止してファイルをまとめよう」

Javaエンジニア「関数は初心者には難しい。すべてMainに書こう」
0727デフォルトの名無しさん
垢版 |
2018/04/07(土) 17:54:25.23ID:EvpDwywp
C#はVBがカスPGカス案件の受け皿になってるお陰で、Javaに比べると平均レベルは高い気がする
というかJavaのスキル幅が広すぎる
0729デフォルトの名無しさん
垢版 |
2018/04/07(土) 18:11:21.85ID:tI04O4km
C#は上級者向けって散々プロパガンダしてきたから自覚のある雑魚がVB.NETに吸収されてくれた
Javaは誰でもウェルカム初心者に最適の言語みたいな空気を出し続けた結果底辺が爆発的に増えて悲惨な事になった
0730デフォルトの名無しさん
垢版 |
2018/04/07(土) 18:45:08.89ID:yyzWBMut
(自称)上級者うけるw
0733デフォルトの名無しさん
垢版 |
2018/04/07(土) 19:24:31.38ID:tpM+GlB1
C#勉強してもJavaと違ってほとんど仕事ないんだぞ。
最新機能のコード張ってドヤ顔してる奴は日頃何のコード書いてんだ?
もしかしてアプリは何も作ってない生産性ゼロの無職じゃないのか。
0734デフォルトの名無しさん
垢版 |
2018/04/07(土) 19:35:14.49ID:Hh6FAb+r
>>733
最新機能のコードってどのレスだよ…
仕事でやっているような奴らがこんなところにこんな内容で書き込んでいたら心底軽蔑するわ
0735デフォルトの名無しさん
垢版 |
2018/04/07(土) 19:37:30.15ID:tpM+GlB1
>>734
落ち着けよ。何言ってるか分からん。
日頃から人と話してないからそういう変な日本語になるんだぞ。
0737デフォルトの名無しさん
垢版 |
2018/04/07(土) 19:51:31.58ID:9Vh0SARC
仕事がないなら自分で仕事を作ればいいだけ
仕事が流れてやってくるのを待つだけならプログラマーやらない方がいい
0739デフォルトの名無しさん
垢版 |
2018/04/07(土) 20:06:20.72ID:h+NQtj0i
仕事というのはやれば利益が出るものだ
利益が出ないものは仕事ではない
安い労働力じゃないと利益が出ないのであればそれはすでに仕事じゃないんだ
0743デフォルトの名無しさん
垢版 |
2018/04/08(日) 00:23:39.85ID:gtzBS3Pe
C#のnAudioを使用してボイスチェンジャーを自作しようと考えております。
音声データのリアルタイム入出力及び音声データ数の増減によるピッチ変更までは出来ている状況です。
私が今困っているのは音声データ数の増減なしのピッチ変更についてなのですが、どなたかご教示願えませんでしょうか?
また、使用言語がC#のため、こちらの板に書きませていただきましたが、質問内容が不適切であれば、適切な相談する板をご紹介願えませんでしょうか。
以上です。よろしくお願いいたします。
0745デフォルトの名無しさん
垢版 |
2018/04/08(日) 09:58:06.18ID:b82WQPaE
なんでMSの期待の星だったC#がたった10年でこれほどマイナー言語になったんだろうな。
やっぱりヘジはマイナーの星の元に生まれたんだな。
0747デフォルトの名無しさん
垢版 |
2018/04/08(日) 10:15:11.44ID:b82WQPaE
昔、Delphi信者に同じこと言われた。
0748デフォルトの名無しさん
垢版 |
2018/04/08(日) 10:38:02.03ID:CwlNIOae
delphiからc#に移った口だけどずっとc#の地位はひくかったよ
最近は逆に地位が高くてビビる
0750デフォルトの名無しさん
垢版 |
2018/04/08(日) 10:45:52.34ID:CwlNIOae
delphiのころは趣味でdelphiやってるって言ったら
何それクスクスみたいな扱いだった

c#に移ったら移ったで同じような感じでMSが作ったやつでしょ?
MS大すきなんだねクスクスみたいな扱いだった

いつも悔しい思い出いっぱいだった
0751デフォルトの名無しさん
垢版 |
2018/04/08(日) 10:46:27.90ID:b82WQPaE
昔はマジでC#はVBを消し去ると思ってたが、まさかポンコツJavaにC#が消し去られようとしてるとは。
当時のオレは信者的な変な妄想に駆られてたんだな。
0752デフォルトの名無しさん
垢版 |
2018/04/08(日) 10:51:10.16ID:CwlNIOae
c#はMSが作ったのに最新技術からは常に距離があって悲しい
win32呼ぶのもDirectX呼ぶのもめんどくさい

slimDXとかNAudioとか使わないといけなかったり意外と何かやりたくてもwindowsとか親和性が低い
0753デフォルトの名無しさん
垢版 |
2018/04/08(日) 10:58:39.32ID:mZcB9gNZ
ほんと、MicrosoftはC#からWin32API呼ぶライブラリぐらい全部用意しろよなと思う。
0754デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:01:37.05ID:ALJFTiiT
大衆の大半はものを知らんバカって構図はシステム開発業界も政治もおなじだな

初心者向けという宣伝文句に騙されて初心者がJavaに食いつく
初心者で水増しされたシェアを根拠に考えないバカがJavaを採用する
だから初心者とバカしか居ないんだよJava案件って

発注する方も人数ばかり多くてろくな人材がいないってわかってる
だから優秀な人材がやりたがらない、やる価値の低い、とりあえず頭数揃えてデスマゴリ押しすればなんとかなるタイプの土方案件を押し付けるために大量に発注する
だからJavaの案件は多い

その辺の事情が統計に表れてるんだろうな
こういう考察ができずに数字取ってるってだけではしゃいじゃうのがまたJava土方らしくて微笑ましい
0755デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:09:03.68ID:CwlNIOae
>>754
妄想はいいからw
javaはc#が出てくる前から地位を確保しててc#はそれに食い込めなかっただけだ
似てたからあえてc#は選ばれなかった
javaとc#が似てなくてc#に大きな強みがあれば事態は変わってた

javaはOS選ばなかったので柔軟に環境を構築できた
c#にはそれが無理だった
勝負にならない
0758デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:15:25.14ID:CwlNIOae
ちょっと前までc#を選ぶ場合別途windowsが必要だった
サーバー群にそこだけwindows入れたら技術者が二系統いるんだからコストアップでしかない
0759デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:18:39.12ID:MOyn8Ftm
文系でも未経験でも誰でもプログラマーになれます!系の企業でとりあえず教えるのがJavaだからなあ
0762デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:36:33.75ID:6R1G24Uu
何を勘違いしてるのか知らないが、そもそも仕事でC#やってる奴でC#しかできない奴なんかまずいないぞ?
今C#の仕事があるからC#使ってるだけだ
0763デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:37:09.40ID:CwlNIOae
javaとc#は対立軸にあるとは思わない

javaはソフトウェア開発の実用実践的な方面で発達しててその恩恵をc#もこうむってる
javaのOSSをc#に移植したものがたくさんある
c#が弱い分野もそうやってなんとか保ってる

宗教的な理由で多言語を叩くのはみっともないし自分の首を絞めてる
どの言語よりjavaはc#に似てるんだから
0764デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:46:38.92ID:6R1G24Uu
よく分からん奴だなあ
プラットフォームから自分で選べる場合は俺もLinux使うし、すぐに引き継ぐ必要があるなら言語はJavaを選ぶよ
言語も好きに選べるならNodeやPython使ったこともある
C#はWin縛りがある場合だけだね
言語なんか何でもできて当たり前だろ
0765デフォルトの名無しさん
垢版 |
2018/04/08(日) 12:26:30.88ID:vVKm0lu4
言語なんか何でもできて当たり前系初心者w
この時期よくいるなw
0768デフォルトの名無しさん
垢版 |
2018/04/08(日) 15:50:39.99ID:X66l6uUF
最近のC#プログラマはUnityでゲーム作りながら覚えた人も多いんじゃないかな
自分も元々はC++で、趣味でUnity覚えた後にVC#に移行したタイプだし
0772デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:02:11.44ID:GoOLzpCW
ワッチョイあるとNGが一週間持ってしまうからな
NGされることに耐えられない奴にはツラい
0773デフォルトの名無しさん
垢版 |
2018/04/08(日) 22:29:46.39ID:IHmjXCuY
>>742
うおおおおおおおおおおおおおお
ありがとう!
イベントのmousemoveでポインタが上に来たときにいちいち描画するというめんどくさいことをやっていたのが一瞬で解決されました。
0774デフォルトの名無しさん
垢版 |
2018/04/09(月) 19:36:12.57ID:rziMbcmu
>>744
この間質問させていただいた者です。
音声波形について知識を深めまして、解決に至ることができました。
ありがとうございます。
0776デフォルトの名無しさん
垢版 |
2018/04/11(水) 22:54:04.61ID:KcH4NQQO
String.formatでどんなint32値でも4桁固定で出力する事はできますか?
C++のprintsfでは出来たはずでしたが...
0781デフォルトの名無しさん
垢版 |
2018/04/12(木) 10:56:07.52ID:x271Fbl6
例えば"123456"なら"1234"、"3456"と何らかの指定で出来ないかなと。
printfで試したら出来ませんでした。"%2.2s"と勘違いしていたようです。
ありがとうございました。
0783デフォルトの名無しさん
垢版 |
2018/04/12(木) 12:42:24.23ID:VFBWttp5
ググれない、意図を正確に説明できない、思い込みで質問
この程度の初心者ならふらっとに行けばいいのに
0790デフォルトの名無しさん
垢版 |
2018/04/14(土) 16:10:36.44ID:I+wCImux
質問ばかりして答えられないと勝った気になる馬鹿左翼の手法がム板で横行してるようだ。

ゆとりだろうな。
0792デフォルトの名無しさん
垢版 |
2018/04/14(土) 17:01:56.63ID:I+wCImux
というおまえの態度が気に食わない。
0794デフォルトの名無しさん
垢版 |
2018/04/14(土) 18:25:49.66ID:fnrer+0Y
>>791
教えたがりが答えられない質問に対して自尊心を維持するにはそうせざるをえないだなこれが
てか大人なら察してやれよw
0800デフォルトの名無しさん
垢版 |
2018/04/16(月) 20:35:13.44ID:BgLBSbRe
✕とか○印を表示させて移動させたいんだけどfillellipseとかで描いて消してを繰り返せばいいの?
0805デフォルトの名無しさん
垢版 |
2018/04/16(月) 20:52:09.68ID:Iff3OzVT
スプライトは言語の機能にはない
標準のフレームワークにもない

Unityみたいなゲーム用のライブラリ探してみるしかないかな
0806デフォルトの名無しさん
垢版 |
2018/04/16(月) 20:58:43.05ID:pnvSaCZF
コントロール(例えばPictureBox)をスプライトみたいに使えないこともないよw
透過色も使えるし優先順位付きに重ね合わせも出来る
0807デフォルトの名無しさん
垢版 |
2018/04/16(月) 21:00:13.32ID:BgLBSbRe
やっぱりunityですか...
drawで描いたり消したりでもいいんですよね。でもゲームっぽくいろいろ動かしたいならunity勉強するべきなのかな?
0808デフォルトの名無しさん
垢版 |
2018/04/16(月) 21:12:25.49ID:al53E7x7
初心者にこそUnity
情報の量質共に圧倒的だ
C#は言語の中ではかなり複雑で習得の難しい部類で、初心者が言語から入ると絶対に挫折する
初心者向けのUnityのチュートリアル的な本で動かしながら学んだほうが続く
0809デフォルトの名無しさん
垢版 |
2018/04/16(月) 23:13:13.00ID:+pXWCL3n
unityかぁ。
面白そうだけど、いまようやっとc#使い始めたところなので、
あまり手を広げたくない。

でもunityで研究してる人もいるみたいだし、
ゲーム系の機能が豊富だとそれをいじっていて出てくる研究のアイデアってのもあるんだろうなぁ。
0811デフォルトの名無しさん
垢版 |
2018/04/16(月) 23:21:08.53ID:Ymn83ruC
WinformsやWPFと絡めてやるならSharpDXでやるのがよろし
まあDirectX方面に慣れてないとキツイかもしらんが
0815デフォルトの名無しさん
垢版 |
2018/04/17(火) 05:44:04.33ID:Z6U7XFnZ
描画系めんどくさいから、Unity使うと楽だよ
ドットインストールのUnity入門動画見れば1日で使える様になるけど、Javascript使ってる所をC#に書き換える必要があるね
0817デフォルトの名無しさん
垢版 |
2018/04/17(火) 14:19:32.66ID:t0sJW6b/
C#で作ったアプリのリソースファイルを外部に委託して英語に翻訳してもらいたいのですが、
リソースファイルそのものはXMLで、そのまま委託先にファイルを渡しても編集ができません(XMLを理解していないので)
更に.Designer.csの<summary>の書き換えもどうすればいいのか分かりません

このような場合、どのようにして翻訳をしてもらえばいいでしょうか?
0819デフォルトの名無しさん
垢版 |
2018/04/17(火) 14:28:44.53ID:t0sJW6b/
表形式ってExcelのことですか?
どうすれば変換できるのですか?
0820デフォルトの名無しさん
垢版 |
2018/04/17(火) 14:31:12.50ID:xGjbcgxz
プログラミング以前の問題だけど、正確な、少なくともユーザーが見て意味が理解できる
翻訳をしてもらうためには、どっちにしろ日本語の原文だけじゃなく、
それが使われている文脈も合わせて示さないと難しいよ

UIの場合表示スペースの問題もあるし
0821デフォルトの名無しさん
垢版 |
2018/04/17(火) 14:35:26.56ID:t0sJW6b/
難しいと勝手に決めつけないでください
そのような事は聞いてませんので質問だけに答えてください
0823デフォルトの名無しさん
垢版 |
2018/04/17(火) 14:39:31.37ID:t0sJW6b/
回答できないなら黙っててくださいね
0826デフォルトの名無しさん
垢版 |
2018/04/17(火) 20:37:52.00ID:9vQdK3hx
>>800
このレベルなら実際にやってみればいいのに
やる前にここで聞いてどうしたいんだろう
このレベルでUnity使えって言うアホは死んだ方がいいよ
0827デフォルトの名無しさん
垢版 |
2018/04/18(水) 01:27:14.97ID:2l4GI+/x
VC#プログラマで過剰にUnityを嫌ってる人って、一体何と戦っているんだろう?
Unityのお陰でC#人口が増えたんだから、みんなで仲良くすればいいのに
0828デフォルトの名無しさん
垢版 |
2018/04/18(水) 02:19:47.97ID:EbGCOVNU
どこにそんなレスがあるのよw
どんな被害妄想だw
チミこそ誰と戦ってるんだよw
0830デフォルトの名無しさん
垢版 |
2018/04/18(水) 11:17:42.68ID:oQVEBoIe
>>827
スレチにも関わらずUnityの普及活動してるおまえとだよ。おまえのレスはただの荒らし行為に過ぎない。
0832デフォルトの名無しさん
垢版 |
2018/04/18(水) 16:55:20.07ID:ur62Feqw
あんまり調べられないままの相談で申し訳ないのだけど

証明書の秘密キーつきのエクスポートをやりたいんだけど、秘密キーで暗号化するあたりのサンプルが見当たらない

X509certificate.Exportメソッドに暗号化のオプションが無いのは、アルゴリズムを知られない為に実装していなかったりすんのかな?

それとも探し方がぬるいだけかな
実際ぬるいから、もっと探さなくてはいけないんだけどちょい暇が足りていない…
0835デフォルトの名無しさん
垢版 |
2018/04/20(金) 08:45:20.56ID:0VrNppPf
共同ツール 1

https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/
0836デフォルトの名無しさん
垢版 |
2018/04/20(金) 15:43:11.07ID:m3w/FVh4
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
0837デフォルトの名無しさん
垢版 |
2018/04/20(金) 16:05:10.50ID:b0HtDqHF
>>836
正しくはCのが早かったというべきだよな。
C#でC作成ライブラリ使えばもっと速いだろう。
0838デフォルトの名無しさん
垢版 |
2018/04/20(金) 17:57:23.70ID:Zbn/uqxI
別に内部的にCのライブラリ呼んでだって良くないか?
そのライブラリが全く普及していなかったりするならともかくそれなりに普及していて誰でも普通に使えるわけだからpythonのライブラリと見なして構わない
手段を目的にしてしまった的外れなツッコミだと思う
0840デフォルトの名無しさん
垢版 |
2018/04/20(金) 19:09:36.62ID:n/XKSXFH
比較方法は誤ってないよ
特殊なことしなければ呼び出せないならともかく、内部的にCで書かれているだけで表面的にはpythonで書かれて提供されている
つまりpythonユーザーなら誰でも普通にその速度で計算できるわけで、それをわざわざ縛る意味など皆無
C#だって、というなら内部的にCで書かれたC#用の同等ライブラリを探せばいいだけのこと
もしそんなものが存在しないならC#ユーザーはその速度が出せないんだから負けていると言うしかない
0843デフォルトの名無しさん
垢版 |
2018/04/20(金) 20:18:31.20ID:tb9GaJQ9
ここでいくら吠えたところでまったくの無意味
Qiitaの著者に直接言えやコメントも出来ないゴミ共
0844デフォルトの名無しさん
垢版 |
2018/04/20(金) 21:36:22.00ID:9TOBYLLi
著者てwゴミの廃棄者やぞwww
0846デフォルトの名無しさん
垢版 |
2018/04/20(金) 21:48:05.63ID:j5E1zTaf
稀に興味深い記事もある(性別のISO規格の話とか)が、
最近は初心者とワナビのメモと知ったかが増えすぎて、
聳え立つクソ山と呼ぶに相応しい
0848デフォルトの名無しさん
垢版 |
2018/04/20(金) 22:14:39.58ID:/f4SVs1l
最近の若者はベクトル計算用ライブラリと汎用コレクション操作のパフォーマンスを比較してイチャモンつけてしまうのか
しかも汎用コレクション操作の使い方を間違えてさらの遅くする徹底ぶり
ここまでくるとアンチC#がわざとやってるのかと疑ってしまう
0849デフォルトの名無しさん
垢版 |
2018/04/20(金) 22:27:04.05ID:9TOBYLLi
ゴミ袋に名前書く時代なんやから本名制にしたってなんぼでもゴミ製造するやろw
大体自分がゴミ製造機やっちゅー自覚がないんやからあいつらはw
0850デフォルトの名無しさん
垢版 |
2018/04/20(金) 22:34:20.16ID:9TOBYLLi
あとあれやなアウトプットアウトプット言い過ぎやねん
ほとんどの無能は黙ってインプットだけしといた方がええねんマジに
0853デフォルトの名無しさん
垢版 |
2018/04/21(土) 00:57:32.90ID:YdpuWmPR
そんなバカなw
お前の田舎ではゼロがマイナス1より小さいのか?
とんだ地方だな
0857デフォルトの名無しさん
垢版 |
2018/04/26(木) 16:08:33.53ID:xy+oxvou
try{}catchってmainで使っちゃダメなんだな、mainで使うと先になんかエラーチェックされてるみたいで動いてくれない
0859デフォルトの名無しさん
垢版 |
2018/04/26(木) 16:30:15.88ID:b66Ryl3w
コンソールアプリでasync/awaitを初めて導入しようとサンプル書いて
「どおじてブレークポイント貼っでもがっでにアプリ終了じぢゃうのおおお」と
一時間くらい泣きそうになってた頃の自分を思い出した
0862デフォルトの名無しさん
垢版 |
2018/04/26(木) 17:45:36.83ID:OslpNjgP
>>861
Main.cs(11,9): error CS0155: The type caught or thrown must be derived from System.Exception
catch(Hello e)ってなに?
0868デフォルトの名無しさん
垢版 |
2018/04/26(木) 18:53:17.65ID:xy+oxvou
try使った時にエラーの受け取り方がわからないんだよ
mainで使った時にどうエラーを受け取ればいいのか、0の除算したcatchで処理終了しないでランタイムエラーの方で止まってるから
0869デフォルトの名無しさん
垢版 |
2018/04/26(木) 18:58:01.55ID:WT1hu9Nk
>>868
確認したいだけならint x = 10 / 0;を消して>>863のthrow new Exception();を入れてcatchの(Hello e)を消せ
何見ていたらこんなあほな書き方になるんだ
0870デフォルトの名無しさん
垢版 |
2018/04/26(木) 19:41:52.26ID:b66Ryl3w
Main云々以前にそもそもtry句での引数無しthrowも定数ゼロ除算もコンパイルエラーだし
ぶっちゃけ開発環境上でC#書いたことがあるのかも怪しいレベルだなコレ…
0871デフォルトの名無しさん
垢版 |
2018/04/26(木) 20:03:05.83ID:VsDVtvXW
>>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
0872デフォルトの名無しさん
垢版 |
2018/04/26(木) 20:12:42.87ID:xy+oxvou
https://ideone.com/gjRXk6
こうゆう意図的にエラーを起こしたかったんだよ、エラーの起こし方がよく分かったわ
0874デフォルトの名無しさん
垢版 |
2018/04/27(金) 01:11:19.54ID:k/lWF70S
StreamReaderやStreamWriter使ってusingで括るの忘れてファイルが握られっぱなしなんですけど、なんでClose呼ばないの?
習慣にしようよ。って、こいつらOpenが無いからClose忘れるんだよね。
非対称な関数作るんじゃ無いよもう。Open要らないならCloseも要らない様にしろよな。ぷんぷん。
0877デフォルトの名無しさん
垢版 |
2018/04/27(金) 06:29:05.88ID:OvoGcsme
もはや一貫性のない欠陥言語。当初のルールを無視しまくり機能追加した結果がこれ。
0879デフォルトの名無しさん
垢版 |
2018/04/27(金) 07:02:09.96ID:OvoGcsme
>>878
C#のような古くさい設計の言語使ってるおまえは十分老害。
C#はまさに増築しまくりの不便で欠陥だらけの温泉旅館。
未だにそれをナウい温泉だと思ってるおまえのようなボケ老人にはお似合いwww
0883デフォルトの名無しさん
垢版 |
2018/04/27(金) 08:56:56.32ID:k/lWF70S
いや、ドア開けたら閉めるだろ?、猫じゃ無いんだからさ。
でも開けた覚えの無い自動ドアが実は半自動で、
閉める時だけは手動なんて、合理的に考えて不便じゃね?
0884デフォルトの名無しさん
垢版 |
2018/04/27(金) 09:17:59.23ID:4iAJG+ab
>>883
お前のケツには「人生を開始する」なんてメソッドは生えてないだろ?
でもお前の人生はそのうち終わるし、刺されたら即座に終わる
生まれた瞬間に始まっていて、終わらせるのはいつでもできる
ごく自然な摂理
0885デフォルトの名無しさん
垢版 |
2018/04/27(金) 09:44:49.47ID:k/lWF70S
>>884
親クラスが産むメソッド呼んだんだから、終わらすメソッドも親クラスが呼ぶだろ?
自殺メソッドはそりゃ普通は呼ばないわな。
0891デフォルトの名無しさん
垢版 |
2018/04/27(金) 13:59:13.33ID:OvoGcsme
馬鹿がガベコレで夢を見たんだよ。そしてJavaをパクった。

だが現実はusingにdisposeだらけ。

ほんと馬鹿だよな。もはやC言語以下の不便さ、汚さ。ボケ老人には革新に見えるらしいwww
0894デフォルトの名無しさん
垢版 |
2018/04/27(金) 18:45:23.22ID:+ocy8bIv
仕事じゃなかったらストレス半端なんか?
0896デフォルトの名無しさん
垢版 |
2018/04/28(土) 06:41:03.36ID:o29GXtCO
カベコレのせいでデストラクタがいつ動くか不定でC++のようなスコープ終了で自動クローズができなくなった。
結果、using、disposeの導入。

馬鹿がほんと何も考えないで設計するとこうなるという見本。ほんと醜い言語だよ。

一貫性? ないない。C#2.0とは既に別言語だよ。名前買えるべき。Neet-C#とかに
0898デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:28:12.52ID:o29GXtCO
>>897
詳しく!!!
0899デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:35:16.04ID:o29GXtCO
C#が開発現場からほぼ淘汰されたから良い時代になった。保守で残ってるのは2.0案件ばかり。
こういうゴミ案件は、自称おれは理解している ID:bL+b5Osr に投げるのが一番。
0900デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:38:30.51ID:xU4jt1e/
ホントにゴミの巣窟スレになったな
初心者どころかひきこもりがずっと吠えていてそれにいちいち相手するクズまでいる
0902デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:48:46.48ID:o29GXtCO
せっかくのGWだからな。

みんなで死滅寸前のC#にトドメを刺そうではないか。

ヘジがMSを退社すれば黒歴史としてC#は完全に消される運命。
0903デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:54:11.18ID:g/IgsaGs
なんかC#に親でも殺されたのかと思うような奴らがいっぱいおるのなんなの
今さらJavaドカタが出張してくるはずもなく謎だわ
0904デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:56:44.37ID:o29GXtCO
GWなのに人がいない。C#は完全にオワコンだったわ。今日はニュー速で過ごすわ。
0905デフォルトの名無しさん
垢版 |
2018/04/28(土) 09:57:08.60ID:bL+b5Osr
Javaは今末期だから必死なんだろう
JavaしかできないJavaドカはおまんま食えなくなる
0907デフォルトの名無しさん
垢版 |
2018/04/28(土) 14:29:47.18ID:fJBRJJEo
ヒープ管理から解放されたけど、むしろリソース管理が意味不明になってるよな。
0910デフォルトの名無しさん
垢版 |
2018/04/28(土) 19:19:20.17ID:0zrAdS5u
ワッチョイなんかいらない
規制を強化すればスレが良くなる、という単純なパターンを鵜呑みにする思考こそ批判されるべきだ
0912デフォルトの名無しさん
垢版 |
2018/04/28(土) 19:36:02.31ID:Or52BkbK
ワッチョイ有りはもう立っているんだから付けて立てたら重複だ
ふらっとに頭のおかしいやつ行かないようにここで囲っててくれ
0913デフォルトの名無しさん
垢版 |
2018/04/28(土) 20:08:26.34ID:sp22eYvn
勝海舟は「憂国の士を自称する連中が国を亡ぼす」と言ったそうだけど、スレも同じだね。

荒らしてる奴に限って自分が荒らしだと思ってないどころか、
逆に俺はスレを憂いてるんだとか盛大に勘違いしてるのな

お前がいなくなるのが一番スレのためだってw
0917デフォルトの名無しさん
垢版 |
2018/04/29(日) 07:55:16.57ID:JHpKH8Au
マウスカーソルの位置を0.1sec置きぐらいに全部取得したいんだけど、
終了時刻は決まってないので配列で宣言し難い。
これってDictionaryとかに入れていけばいいのかな?

x,y座標と時間の3変数になるんだけど、
時間をkey noにしてx,yを紐づけるみたいな感じでOK?
time,xとtime,yの二つのDictionaryを作る。

なんかすごく冗長な気がする。
time, x, y
みたいなDictionaryってできないのだろうか・・・。
0922デフォルトの名無しさん
垢版 |
2018/04/29(日) 12:15:32.77ID:ybi7BJyI
>>920を見てC#って匿名型のList<T>を簡単に作れる新しい構文ができたのかと
思ったが、そんなものはなかったw

あと、調べてないがDateTime.Nowの精度は恐らく秒単位だと思う。

だから時間は記録開始かまたは先頭のデータからのオフセットをms単位で
記録するとかの方がいいだろうねたぶん。
0925デフォルトの名無しさん
垢版 |
2018/04/29(日) 12:24:11.68ID:jYKkSI/h
そういう場合は構造体に包んで扱うと良いよ

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));

あとマイクロ秒を後で使う予定がなければフレーム番号で保持するのが妥当だと思う
0927デフォルトの名無しさん
垢版 |
2018/04/29(日) 12:41:33.60ID:ybi7BJyI
>>924
データ型にms単位になってるからってHWがその精度を持ってるかどうかは別問題w
RTCは歴史的にそんな精度を持ってないw

>>926
ああ、そうなのか
名前知ってるだけで全然使ったことないから知らんかった
0933デフォルトの名無しさん
垢版 |
2018/04/29(日) 22:33:17.87ID:SwdLMJM1
>>928
それはそういう質問?
>>917の質問に関して言えば「0.1sec置きぐらい」って書いてあるからそんなきっちりの時刻精度求めていない気がする
精度に関しては下の記事
https://answers.microsoft.com/ja-jp/windows/forum/windows_10-performance/windows10%E3%81%AE%E6%99%82%E8%A8%88%E7%B2%BE/2cd3c47c-5359-4c1e-a1db-23f24feca338
精度保つ外部dllはわからない。NTPで適度に合わせるくらいしか思いつかない
0935デフォルトの名無しさん
垢版 |
2018/04/30(月) 01:56:37.76ID:JUUDfCG9
動画や音声再生するのにより正確なタイムチックが必要なアプリは山ほどあるし、実現してんぞ。
0938デフォルトの名無しさん
垢版 |
2018/04/30(月) 11:42:52.93ID:kqITcJnL
RTCは頻繁にアクセスするには遅すぎるデバイスだからOS起動後の時計はタイマー割り込み駆動だよ
0939デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:09:14.35ID:Y7BLr8PP
いろいろありがとうございます。
終了時刻が決まってないからlistとかかなとおもったんですけど、
構造体の方がよさそうですね。
試してみます。
0940デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:11:05.06ID:Y7BLr8PP
それとは別にc#で
List<(DateTime time, int x, int y)>
みたいな複数の変数を扱うことってできるのでしょうか?
var list = new List<int>();
みたいに一つの変数だけなのかと思ってました。
これができるといろいろ便利そうなのですが・・・。「

List<(DateTime time, int x, int y)>
って入力してもエラーが返ってくるんすよね。。。
0945デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:34:43.28ID:GCfeJpPr
タプルの利用には、ValueTuple構造体という型が必要になります。 この型が標準ライブラリに取り込まれるのは .NET Framework 4.7、.NET Standard 1.7を予定しています。 それ以前のバージョンでタプルを使いたい場合には、以下のパッケージを参照する必要があります。

System.ValueTuple
0947デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:56:22.44ID:Y7BLr8PP
また初歩的な質問で申し訳ないのですが、
C#のクラスと構造体で、これまで軽量のオブジェクトでもすべてクラスで作成していたんですが、
あまりお作法的には宜しくないんでしょうか?
0948デフォルトの名無しさん
垢版 |
2018/04/30(月) 12:56:51.66ID:Y7BLr8PP
なんとなく構造体はクラスの下位互換みたいなイメージで使用していませんでした。
0949デフォルトの名無しさん
垢版 |
2018/04/30(月) 13:48:36.78ID:EYWg1Al3
応用アプリケーションなら全部クラスでいいよ
構造体は構造体のメリット・デメリットを全て把握した上で、構造体のほうが良い選択であり、将来に渡って絶対にクラスに変更したくならない、と確信できる場合に使うもの
そんなケースは滅多にない
あ、PInvokeは例外な
0950デフォルトの名無しさん
垢版 |
2018/04/30(月) 15:01:14.38ID:JUUDfCG9
C#上の構造体はクラスと等価だ。
つか、構造体で使う共通処理をまとめてそこに突っ込め。
ほら、使い易くなっただろ?
構造体なんか使わずクラス使え。
0952デフォルトの名無しさん
垢版 |
2018/04/30(月) 15:59:18.84ID:tgxaKODO
structは値型として扱われるので
参照型であるclassと同じようにコピーするとメモリの内容が丸ごとコピーされる

structを使った方が良い時の条件見たけど
普通はクラスで良いんじゃね?

https://dobon.net/vb/dotnet/beginner/whenusestruct.html
0954デフォルトの名無しさん
垢版 |
2018/04/30(月) 16:54:16.36ID:Y7BLr8PP
ありがとうございます。
ちょっと急ぎでコーディングしてるので、
不慣れな構造体でなくクラスでやってしまおうと思います。

こうやって新しい知識をいれないとあとではまって痛い目あうのかなぁ。
0955デフォルトの名無しさん
垢版 |
2018/04/30(月) 17:35:20.19ID:IavhHICM
C#で構造体とか思考から除外してどうぞ
0956デフォルトの名無しさん
垢版 |
2018/04/30(月) 17:42:54.80ID:1/AvOsQF
>>954
構造体には構造体のメリットもある(だからBCLでも使われてる)んで、
2chネラ的な1bit脳の極端な意見は真に受けない方がいいよw

一つだけ挙げれば、プロパティとして公開するような値は構造体の方が楽。
クラスでもイミュータブルにすれば構造体と同じような感覚で使えるが、
イミュータブルなクラスは使い勝手がよくない
0960デフォルトの名無しさん
垢版 |
2018/04/30(月) 19:21:42.03ID:EU4JggNS
素人がテキトーに構造体を扱うと却って遅くなるなどの弊害がある
使うならプロファイリングして本当に速くなっているか見極めるべき
0964デフォルトの名無しさん
垢版 |
2018/04/30(月) 20:02:40.18ID:EYWg1Al3
最近の参照関連の拡張は失敗だった
なんもわかってない奴がドヤ顔でクソコード量産する未来しか見えねぇ
0975デフォルトの名無しさん
垢版 |
2018/04/30(月) 21:11:39.90ID:hzspnxAs
ここで真っ赤になっている時点で恥ずかしいのに中身が低能の罵り合い
次スレ立てる人がいたらワッチョイは付けるなよ
もうワッチョイ付きの相談室のスレは2つあるから
0978デフォルトの名無しさん
垢版 |
2018/04/30(月) 22:34:10.34ID:yc2yVR1a
ValueTuple構造体
あるといいなあとは思ってたけど、遂に実装される日が来るのか
0980デフォルトの名無しさん
垢版 |
2018/05/01(火) 08:04:16.42ID:uHjvXCWl
カーソル記録のものですが、

class Point { public int X; public int Y; 他必要メンバ変数 }

でwhileループを組んでゲーム終了条件でBreakするまでは
上記クラスのインスタンスを無限生成してカーソルの位置を記録するみたいな感じでおかしくないですよね?
0981デフォルトの名無しさん
垢版 |
2018/05/01(火) 09:12:48.48ID:97Qx1bhI
それだと際限なくメモリを圧迫するから、保持できる上限を決めておいてそれを超えたら追加時に古いのを消したほうがいい
0983デフォルトの名無しさん
垢版 |
2018/05/01(火) 09:36:42.01ID:U3YM3k3b
>>982
もう一回>>981を読め
終端を決めろって書いてあるわけじゃない
あと全体のコンセプトや仕様が見えないんだから、それ抜きでここで聞いても正しい答えが返ってくるとは限らない
0984デフォルトの名無しさん
垢版 |
2018/05/01(火) 09:41:38.51ID:n2aDkIog
結局こいつは自分のやりたいことが最初から有って、賛成意見が欲しいだけなんだろう
やり方を変えるようなアドバイスはするだけ無駄だぞ
0985デフォルトの名無しさん
垢版 |
2018/05/01(火) 10:46:07.88ID:DOEaa5oU
>>980
100msごとぐらいの記録でよかったんじゃなかったの?

どっちにしろ、ビジーループが回るごとにマウスポインタ位置の記録を取る(そう言ってるように聞こえる)
なんて無駄過ぎる。

限りなく忠実にマウスポインタの移動を再現したいとしても、常識的に考えて
ポーリング間隔は30ms程度で十分なはずだし、座標だけでなく時刻も記録するのであれば
前回から移動してなければ記録する必要もない

まあ、何にしろ何が聞きたいのかはっきりした方がいいね
そこがさっぱり分からん。
0990デフォルトの名無しさん
垢版 |
2018/05/01(火) 12:35:06.24ID:Riv3cgGr
画面更新の度にマウスの位置が移動してるんだから、120fpsで回してりゃ将来的にも需要に足るんじゃね?
それ以上細かくしても再生出来ないしな。
0991デフォルトの名無しさん
垢版 |
2018/05/01(火) 14:07:14.06ID:LR2WXBGb
ところで、ビジーループってどのくらいで回ってて、マウスの分解能ってどのくらいなんだ
マウスって所詮対人間なんでそんなに反応速いデバイスじゃなかったはずだが
0993デフォルトの名無しさん
垢版 |
2018/05/01(火) 22:44:01.95ID:6E8r2PvI
前回と位置が変わってなかったら
その位置が何回連続しているかというカウンタを+1すればいい
馬鹿正直に記録する必要はない
0995デフォルトの名無しさん
垢版 |
2018/05/02(水) 01:15:14.25ID:MWI15vwQ
応用アプリケーションって書いちゃう人がドヤ顔するスレだから多めに見ろよw
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 198日 8時間 25分 32秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

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

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