X



C#, C♯, C#相談室 Part95
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん
垢版 |
2017/10/17(火) 04:02:54.33ID:/jJUZ/t7
■過去スレ
C#, C♯, C#相談室 Part90
http://echo.2ch.net/test/read.cgi/tech/1455160063/
C#, C♯, C#相談室 Part91
http://echo.2ch.net/test/read.cgi/tech/1467142749/
C#, C♯, C#相談室 Part91 (実質Part92)
http://echo.2ch.net/test/read.cgi/tech/1467211515/
C#, C♯, C#相談室 Part92 (実質Part93)
http://echo.2ch.net/test/read.cgi/tech/1485589613/
C#, C♯, C#相談室 Part94
http://mevius.2ch.net/test/read.cgi/tech/1492843013/
0004デフォルトの名無しさん
垢版 |
2017/10/17(火) 04:13:22.04ID:Lf2Q7Nk8
Dictionary.TryGetValueってどんなシーンで使う?
0006デフォルトの名無しさん
垢版 |
2017/10/18(水) 05:27:55.54ID:U3iNCF28
.NET Core 2ってどうなん?
0008デフォルトの名無しさん
垢版 |
2017/10/18(水) 09:53:11.38ID:vI9phIcR
小さいwebアプリをサクッと作ってライセンス料のいらんlinux鯖に置けるのはいいな>core

大規模プロジェクトで使う人は居ないだろうけど
0009デフォルトの名無しさん
垢版 |
2017/10/18(水) 09:55:51.07ID:J6ohalwU
C#でjQueryみたいにhtmlの中の要素を部分的に取り出すなどするのに
お勧めの方法おしえてちょ
0011デフォルトの名無しさん
垢版 |
2017/10/18(水) 11:47:59.17ID:J6ohalwU
>>10
C#でお願いします。
0012デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:04:26.85ID:jdxxBaxx
PythonのBeautifulSoupとかRubyのNokogiriとか使えば?
C#はスクレイピングには向いてない
0013デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:08:45.42ID:qeVi1K01
HTMLアジリティパック?があるけど使いにくい
最近はSelenium2使ってるけどまあこれも本当のやり方じゃないね
0014デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:23:00.35ID:aFTu0X+r
HTMLAgilityPack、あとSGMLReaderって昔なかったっけ?
今もあるのかは知らないが

そもそもC#を勧めないってのは同意
0016デフォルトの名無しさん
垢版 |
2017/10/19(木) 10:57:41.27ID:gEfvUhSv
個人的にはCSSセレクタよりXPathのほうがむしろ好きなんだけど
むりやりXMLとして読む系は終了タグがない要素があるとツリーが無茶苦茶になるのが
0017デフォルトの名無しさん
垢版 |
2017/10/20(金) 11:48:27.53ID:szXZJW6I
Proj1とProj2があります。
1は2を参照して2のメソッドを使います。
1の中でClass Aを定義しています。
2の中でデータをList<A>に入れるメソッドを作り、結果を1に返したいのですが、
その為に2から1を参照してClass Aの定義を使おうとしたら循環参照でエラーしました。
こう言う場合、どうすれば良いですか?
0018デフォルトの名無しさん
垢版 |
2017/10/20(金) 12:08:16.22ID:p6j5lSQw
>>17
何のためにプロジェクトを分けたいの?
まずはそこを明確にしないと始まらない。
循環参照してるってことは相互に切り離せないってことだから、現状ではプロジェクトを分ける意味は全く無い。
分けたい理由があるのなら、その理由次第で適切な方法は違ってくる。
0019デフォルトの名無しさん
垢版 |
2017/10/20(金) 12:33:59.93ID:0XL7LZDf
>>17
>2の中でデータをList<A>に入れるメソッドを作り、結果を1に返したいのですが
この処理をFunc<T,TResult>で定義するのが常套手段
使い方はググればわかると思うが、わからないならプロジェクトを分けるの諦めるしか無いね
0020デフォルトの名無しさん
垢版 |
2017/10/20(金) 12:55:07.59ID:c9z3JUrc
>>17
どうしてもやりたいなら、ClassAを定義したプロジェクトを作ってProj1,2両方から参照すればいいじゃん
発想の切り替えできないとこの先相当辛いよ
0023デフォルトの名無しさん
垢版 |
2017/10/20(金) 23:28:48.97ID:tVzPx1a9
Roslynってどうやって使うの?
ソースから仕様書を生成したいんだが可能か?
0025デフォルトの名無しさん
垢版 |
2017/10/21(土) 09:37:58.52ID:3o9beEeJ
自分のコード見返してどういう動きなのかはわかるが何を思ってそうしたのか思い出せない時があるなw
こういうときに仕様書書いておけばよかったと思い、そして3分経つと面倒で忘れるw
イベントの依存関係まで考えたら他人のコードの解析なんかやる気にもならない
0026デフォルトの名無しさん
垢版 |
2017/10/21(土) 10:09:37.14ID:VmqPmNn/
後で自分のコード見返して分からないってよく言われる話だけど俺はほとんど無いわ
コメントじゃなくてメソッド名や変数名でもいいけど、なるべくコード上に意図を残すように心掛けるのがコツだな
読めないコードを書く奴は大抵コードを製造作業による生成物と考えてる
0028デフォルトの名無しさん
垢版 |
2017/10/21(土) 10:22:21.14ID:3o9beEeJ
>>27
俺はやる気にもならないって書いているんだし>>23に言ってやれよw
そのリンク先のやつは書く内容がおかしいやつだからどうでもいいが
0031デフォルトの名無しさん
垢版 |
2017/10/21(土) 10:45:37.95ID:ut7aXw9f
>>26
説明的なプログラムは誰にでも書けるものではない
書ける人にとっては当たり前と思うけどそうではないらしい
自社のコードが汚い人になぜ汚いコードを書くのかと聞いて回ったことがある
彼らは動くものを作るので精一杯なんだ
0032デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:15:21.71ID:J3/Oov/o
設計書も書かずいきなり書き始めたコードを綺麗も汚いもねぇよ
精々メソッドあたりの行数ぐらいしか評価のポイントがねぇ
書いた設計書に対してのソースがどうよ?って話になって初めて評価が下せる
俺はね
0033デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:15:53.60ID:VmqPmNn/
>>31
それは確かに感じるね
彼らに共通して言えるのは、思考の抽象度を上げられないんだよな
話してると「そんな細かいことはどうでもいい」と感じることが多いけど、
その「どうでもいい」という感覚を理解させるのが非常に難しい
0036デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:27:08.65ID:J3/Oov/o
そうやって風が吹けば桶屋が儲かる的なくだんないことを囀ってる限りモノなんか作れないよお前等w
0037デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:46:58.45ID:VmqPmNn/
>>36
設計書が無いとソースは理解できないと考えるのなら、
君はプログラミングにおける抽象的思考(設計)の重要性を認めてるわけだよね
それなのになぜソースコード自体の抽象度が理解のしやすさに寄与するとは考えないの?
0040デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:08:23.05ID:Qn61yzAP
設計書に従った上で説明的な(ある意味冗長な)コードを保守性のために書くと思ったが違うのかな
0041デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:29:31.12ID:Lfp6S+wn
>>40
それだと設計書に書いてない事は書くなって怒られるんだよね
設計書に書いてないことを書かないとビルドすらできないから無視するしかないんだけど
0046デフォルトの名無しさん
垢版 |
2017/10/21(土) 18:24:51.50ID:DqhfXWIR
最近のC#スレはマ板行くか首吊って死ね系の話題が多いですね
何かあったの?
0056デフォルトの名無しさん
垢版 |
2017/11/03(金) 05:13:23.57ID:dmbucyNJ
>>55
その場合、例えばsql server向けに作ったC#プロジェクトで
DBをmysqlに変更しても大きな変更無く動かせるの?
0059デフォルトの名無しさん
垢版 |
2017/11/03(金) 09:48:45.12ID:Ifv/vU0b
今もmysql使ってる人は少ないと思うけど知らない人がいるのかな
時代は変わりました
0060デフォルトの名無しさん
垢版 |
2017/11/03(金) 15:01:36.50ID:z1slN08A
>>57
sqlserverを使うある程度大きなプロジェクトだとefを使うのが一般的ですか?
全く使わないなんてのも有るんでしょうか?
0064デフォルトの名無しさん
垢版 |
2017/11/03(金) 20:20:48.15ID:tw8puOLs
>>62
Dapperは生SQLだよ
DataReaderやクエリパラメータとオブジェクトの間のマッピングの単純作業を自動でやってくれるだけ
0065デフォルトの名無しさん
垢版 |
2017/11/03(金) 21:11:34.22ID:xnvXDnsB
>>62
EntityFrameworkでも生のSQLは書ける。書かなくてもパフォーマンスに(考慮しなくちゃいけないほどの)遅延がなければ書かない。
0067デフォルトの名無しさん
垢版 |
2017/11/04(土) 03:09:26.28ID:bSw/g7Kd
WebRequestを続けて二回同じサーバーに別のオブジェクトで通信したら変なエラーが出るんだがわかる奴いる?
これじゃ情報不足ならそのうち再質問するが。
0068デフォルトの名無しさん
垢版 |
2017/11/04(土) 04:12:32.15ID:m6ZusNHm
「変」って何だよ具体的に言えよ
なんで相談室でまでこんな所から始めなければいけないんだ
0069デフォルトの名無しさん
垢版 |
2017/11/04(土) 12:22:27.57ID:d/IRXg6v
>>65
最近efを覚えて試しているんだけど、
efでusingしてdbに何か書き込むだけでも、なんかレスポンスが悪い気がするんだけど。
気のせい?
0070デフォルトの名無しさん
垢版 |
2017/11/04(土) 12:26:33.85ID:tv+raRR6
HTTPレンスポンスの生文字列データを取得する方法ある?レンスポンスにSet-Cookieが何箇所行かにあるやつをWebResponseでSet-Cookieヘッダを取得しても1番始めのしか取得出来ない
0074デフォルトの名無しさん
垢版 |
2017/11/04(土) 12:32:08.79ID:tv+raRR6
>>73
こんなのあったのかよ
センクス
0079デフォルトの名無しさん
垢版 |
2017/11/04(土) 20:58:01.18ID:bSw/g7Kd
>>73でクッキー取得しても空なんだが?
0080デフォルトの名無しさん
垢版 |
2017/11/04(土) 22:05:43.00ID:bSw/g7Kd
解決した
0082デフォルトの名無しさん
垢版 |
2017/11/04(土) 22:42:33.61ID:bSw/g7Kd
>>81
リクエストオブジェクトにCookieContextオブジェクト入れる&リダイレクトをオフで取れた
0083デフォルトの名無しさん
垢版 |
2017/11/08(水) 19:29:16.27ID:7+AqNTkf
ASP.NET MVCでControllerの中のソースコードが増えて来て混乱気味なのだが、
どうやって整理すればいいのかな?
0085デフォルトの名無しさん
垢版 |
2017/11/08(水) 20:04:15.29ID:7+AqNTkf
>>84
モデルって言うのは本来は何を入れるところなの?
細々とした色んな処理を書いてもいいの?
0087デフォルトの名無しさん
垢版 |
2017/11/08(水) 20:38:56.54ID:AtvWoVld
>>85
モデルにはすべてのロジックを実装するのが正しい
コントローラの役割はリクエストの内容を受け取りモデルに投げて結果をVMに入れて返すだけ
0088デフォルトの名無しさん
垢版 |
2017/11/08(水) 21:16:06.13ID:vGP4g6Va
ASPって出番ある?みんな仕事の案件でやってるの?
0091デフォルトの名無しさん
垢版 |
2017/11/10(金) 10:27:07.08ID:EEZieTzn
クラスのメンバのプロパティを小文字で始めると
メッセージ IDE1006 名前指定の規則違反: これらの単語は、大文字で始まらなければなりません:

と出るのだが、なんで小文字だとエラーなの?
世の中では、大文字で始める習慣があるの?
0093デフォルトの名無しさん
垢版 |
2017/11/10(金) 13:41:07.91ID:Hx4QOm/G
VS2017ならデフォルトで提案事項になっているがエラーになるのは自分で設定したせいでは
0096デフォルトの名無しさん
垢版 |
2017/11/10(金) 15:46:12.86ID:dHTokmn8
で、それはエラーなの?
メッセージが出たら警告だろうが何だろうが全部エラーって言う人も多いけど
0100デフォルトの名無しさん
垢版 |
2017/11/11(土) 00:13:18.80ID:VQqkIwVV
class A{
class B{
class C{
}
}
}
みたいに三重くらいになると、自分でもわけ分からなくなって来るんですが、
世間では三重くらいは普通ですか?
0102デフォルトの名無しさん
垢版 |
2017/11/11(土) 00:33:23.96ID:BH43IN+9
javaの人は良く使うけど
スコープの問題だけだから本来は使わないでもよさそう
0106デフォルトの名無しさん
垢版 |
2017/11/12(日) 08:56:15.86ID:LXGneVsA
>>100
static classだとよくやるけど
static class My{
static class Hoge{
static class Config{
}
}
}
My.Hoge.Configのように使える
でも3重は使わないな
0107デフォルトの名無しさん
垢版 |
2017/11/12(日) 10:27:34.46ID:j0JK3XOe
Javaだと1クラス1ファイル
客先の規約で配置できるファイルに制限があると内部クラスを使わざるをえない
0112デフォルトの名無しさん
垢版 |
2017/11/12(日) 11:28:22.38ID:PNAmYcb6
.Net Core 2.0では、だいぶん.NetFrameworkの実装がカバーされたと聞きました。
https://raw.githubusercontent.com/dotnet/standard/master/docs/versions/netstandard2.0_ref.md
これを見る限りでは、System.IO.StreamやSystem.IO.FileInfo、ISerializableなど
もあります。これらをUWPやASP.NET Coreでも使えるようになるという理解でいいでしょうか。
0114デフォルトの名無しさん
垢版 |
2017/11/12(日) 12:19:41.85ID:pNqEHb8d
>>113
javaとは思想が違うからな
どうしてもメソッド使いたけりゃ拡張メソッド書けばいいだけのこと
0116デフォルトの名無しさん
垢版 |
2017/11/12(日) 12:39:52.61ID:j0JK3XOe
enumにメソッドを定義できないとenumスイッチがあちこちに書かれてシステムが汚染される
そんなことになるぐらいならenumは言語機能から追放したほうがいい
0119デフォルトの名無しさん
垢版 |
2017/11/12(日) 13:26:58.08ID:hG4wTZ8S
>>112
逆に聞きたいんだけど、どういう理解があると思ったの?
0120デフォルトの名無しさん
垢版 |
2017/11/12(日) 13:29:17.49ID:j0JK3XOe
>>117
Javaのenumのメソッドはポリモーフィック
なのでステートやストラテジーなど様々な応用が利く
0121デフォルトの名無しさん
垢版 |
2017/11/12(日) 14:44:05.96ID:IOmcFQTN
enumはどうせ定数に置き換えられるんだから、最初から定数で書いとけばいいな
0123デフォルトの名無しさん
垢版 |
2017/11/12(日) 16:08:56.10ID:kmdFzMTF
class A,B,C,...が有って
void func<T>(...){...}
みたいな関数を
func<A>(...);
func<B>(...);
func<C>(...);
みたいに順番に実行したい場合、
forループ使って書ける?
0125デフォルトの名無しさん
垢版 |
2017/11/12(日) 16:17:52.85ID:j0JK3XOe
>>123
var list = new dynamic[] { a, b, c };
foreach (var x in list)
func(x);

引数もインスタンスも無いならreflection
0128デフォルトの名無しさん
垢版 |
2017/11/12(日) 17:39:19.11ID:UFCv5vw0
>>127
reflectionと言うのでやる方法を教えて下さい
0130デフォルトの名無しさん
垢版 |
2017/11/12(日) 18:01:29.09ID:PNAmYcb6
>>119
APIはあっても、実際は例外投げるんじゃないかとか。
StreamやISerializableなど今まで散々レガシー扱いされてたのに、
すんなり実装されたのだったら、今までは何だったのかと思ってしまって。
0137デフォルトの名無しさん
垢版 |
2017/11/13(月) 01:47:33.98ID:v8HXsfBj
>>126
リフレクション
そもそも用途がわからんけど
0138デフォルトの名無しさん
垢版 |
2017/11/13(月) 01:55:32.64ID:v8HXsfBj
>>130
最初のリンクがそもそも.NETStandardの話なんだけど、.NETStandardとは何か知ってれば(最低限ググれば)前者は迷う余地がない
後者は経緯知らないけどレガシーが実装されたらだめという理由がない

…と考える人が大多数だと思う
0139デフォルトの名無しさん
垢版 |
2017/11/23(木) 11:44:32.89ID:3aIXz7vh
C#でちょっとした文字列の連結を行う場合、+がいいのかFormatがいいのかReplaceがいいのかStringBuilderを使うのがいいのか悩んでます
どれが一番いいのでしょうか?

1. string value = A + "-" + B;
2. string value = string.Format({0}-{1}, A, B);
3. string value = "{A}-{B}".Replace("{A}", A).Replace("{B}, B);
4. StringBuilder sb = new StringBuilder();
  sb.Append(A);
  sb.Append("-");
  sb.Append(B);
0140デフォルトの名無しさん
垢版 |
2017/11/23(木) 11:50:10.15ID:nWWLjgB9
こんな細かいことで悩んでいたら禿げるわ
それぞれにどれだけの差が出てくるか考えろよ
0142デフォルトの名無しさん
垢版 |
2017/11/23(木) 12:03:56.69ID:3aIXz7vh
>>141
なるほど
0144デフォルトの名無しさん
垢版 |
2017/11/23(木) 12:13:05.14ID:1XchAmld
連結ならいつもは分かりやすさ優先で+
実際に扱うデータで使ってみて遅いと感じたらStringBuilderに変えてるわ
置き換えは置き換えの時だし、フォーマット形式が必要と感じたらそれ使うし
悩むのかこれ…コーディング終わらんやろ…
0145デフォルトの名無しさん
垢版 |
2017/11/23(木) 12:20:49.75ID:Go3NcBxu
最初はくだらない事に悩むからしょうがない。直に、開き直るからそれまでとことん悩め。
0148デフォルトの名無しさん
垢版 |
2017/11/23(木) 14:17:08.77ID:U/QtJVxM
StringBuilder必要なのはループで回す時くらいやろ
固定回数なら最適化されるんちゃうか
しらんけど
0149デフォルトの名無しさん
垢版 |
2017/11/23(木) 15:17:10.10ID:JqKYKF6h
改行したい時はsb.AppendLine使う
var s = $@"hello
{A}
world";
別にこれでもいいけど、インデントが気持ち悪い
0150デフォルトの名無しさん
垢版 |
2017/11/23(木) 18:08:06.61ID:w+OP7Z8m
数個程度の定数個の結合にStringBuilderは無いね
@""で改行入れたときの改行コードってソースコードの改行コードに依存するんかな
0153デフォルトの名無しさん
垢版 |
2017/11/23(木) 18:29:25.95ID:Go3NcBxu
と書くと、問題あるな。あるメソッド内でループしてないから普通に文字列結合してても、
そのメソッドを使う方でループしてメソッド呼び出されたら・・
ということでなんでもない。
0154デフォルトの名無しさん
垢版 |
2017/11/23(木) 19:44:15.73ID:NThPFj2G
パフォーマンスは大差ないので可読性で選ぶ
となると

定数個なら+
動的ならlinqとJoin
0155デフォルトの名無しさん
垢版 |
2017/11/24(金) 08:32:28.20ID:LQb8e4yU
public override と
override public とでは、どっちが普通ですか?
0157デフォルトの名無しさん
垢版 |
2017/11/24(金) 09:49:06.09ID:LQb8e4yU
>>156
じゃあstatic使う場合は
どこに入れるべきですか?
0159デフォルトの名無しさん
垢版 |
2017/11/28(火) 20:01:33.21ID:uo9ygS2y
EF Core + MariaDBで行ロックをするにはどうしたらいいですか?
0162デフォルトの名無しさん
垢版 |
2017/11/29(水) 15:02:54.88ID:LyP2QHxX
EFは基本、楽観ロックだからね。
自分が更新するデータは誰も変更しないだろうということで楽観的に考えて行ロックを取得しない。
で、実際の更新時に、保存しておいたタイムスタンプ列や全列を比較して更新するUpdate文を
発行して誰も変更してなきゃ成功する。
0163デフォルトの名無しさん
垢版 |
2017/11/29(水) 15:08:27.80ID:LyP2QHxX
対して、悲観的ロックは誰か変更するんじゃないかと悲観的に考え前もって行ロックする。
行ロック取得したければ、トランザクションの分離レベル変更して、間接的に取得すればいいんじゃねぇかな。
例えば、トランザクションをロックを使って実装してるデータベース使ってるなら、
トランザクションの分離レベルをREPEATABLE READにして読めば、読み込んレコードには
行ロックがかかる。
0166デフォルトの名無しさん
垢版 |
2017/12/02(土) 10:37:02.24ID:OECpFj6Y
Consoleアプリの関数Aから別のスレッドで関数Bをを実行。
Bが終わるまで数分かかるので、その間はAの処理を引き続きやる。
Bが終わったら何らかの通知をA(あるいはアプリ)で受けとる。
そんな処理をしたいのですが、どんな手法がお勧めですか?
0170デフォルトの名無しさん
垢版 |
2017/12/02(土) 13:31:40.26ID:OECpFj6Y
>>167
情報ありがとうございました。調べてみます。
>>168
それは何ですか?
>>169
関数Aの中で関数Bの終了をawaitするとそこでAの処理が停止しますよね?
それでは困るんです。
0171デフォルトの名無しさん
垢版 |
2017/12/02(土) 13:38:50.65ID:/lrBlva0
通知を受け取って何をするの?
Aが実行中に通知を受け取った場合は?
Aが終わったあとに通知を受け取った場合は?
0173デフォルトの名無しさん
垢版 |
2017/12/02(土) 14:11:31.35ID:kxO6m70V
>>172
実際にコードに起こすこと考えたら>>171の疑問出てこない?
ポーリングの有無とかB終了の通知はA以外で受けたほうがいいのかみたいな
0174デフォルトの名無しさん
垢版 |
2017/12/02(土) 14:21:45.96ID:/lrBlva0
void A() {
...
Task.Run(() => B());
...
...
}

void B() {
...
...
SetSomeFlag();
}

こういうこと?
何をしたいのかハッキリしないな
0176デフォルトの名無しさん
垢版 |
2017/12/02(土) 14:22:55.12ID:M5ek0NUJ
>>173
何で目の前の問題置いて次の実装考えるの
やり方が一つ決まったらそれでやり通す必要もないし
質問者の要件わからないのにそんなこと聞きだす必要はない
0177デフォルトの名無しさん
垢版 |
2017/12/02(土) 15:15:48.94ID:XMkOweAB
多分処理AはUIスレッドなんだろ
処理B実行中にUIは止めたくない
そして処理B完了でUIを更新したい

そんな要件だと想像した
0181デフォルトの名無しさん
垢版 |
2017/12/02(土) 18:20:58.48ID:M5ek0NUJ
元の話が設計で根本的におかしいか思い付きで質問しているかどっちか
後半に100ペリカ
0183デフォルトの名無しさん
垢版 |
2017/12/02(土) 21:02:27.32ID:8UWC/wK0
WaitHandleは完了を待つ側のスレッドをブロックするから、
それでいいんだったら普通にasync-awaitでいい
0185デフォルトの名無しさん
垢版 |
2017/12/02(土) 22:01:19.49ID:hEzEqaaq
Aで何したいかだけどコールバックでいいんじゃないの
0187デフォルトの名無しさん
垢版 |
2017/12/03(日) 01:24:35.88ID:R5bnWQiD
つかそもそも別スレッドで実行する必要があるのか
別プロセスで良いんじゃねえのか
0190166
垢版 |
2017/12/03(日) 10:48:55.10ID:fYwJfoN4
皆さんレスありがとうございました。
>Aが実行中に通知を受け取った場合は?
関数Cを別スレッドで実行したいです。例えばこんなふうに。
void C(){
 Console.WriteLine("Bが終わった");
}
>Aが終わったあとに通知を受け取った場合は?
Aは終わらないと言う前提でお願いします。
0193デフォルトの名無しさん
垢版 |
2017/12/03(日) 12:01:59.74ID:mrNMXEOK
フラット案件どころかこれだけレスとキーワード出ていて自分で解決できないのならプログラムやめるべき
0195デフォルトの名無しさん
垢版 |
2017/12/03(日) 12:14:39.54ID:WBs9Zv02
何でもいいけどすぐ動く完動品が出てくるまでこの調子だと思うぜ
どうせソースないんだろ、出てきたものを見ていじって作ろうとしてるんだろ
0196デフォルトの名無しさん
垢版 |
2017/12/03(日) 14:16:09.36ID:VfzmjXdH
>>190
BとCについてはよく分かった
Aが現状どういう処理をしているかによって
解決の仕方が違ってくると思うな
0198デフォルトの名無しさん
垢版 |
2017/12/04(月) 17:37:29.30ID:KH9vP8EW
コンソールアプリで関連性のない2つの動作を同居させるシチュエーションがわからん
マルチスレッドにしたら効率が良くなるってだけの頭の悪い発想じゃね
>>187が当てはまらないのならぜひ教えてほしいくらい
0199デフォルトの名無しさん
垢版 |
2017/12/06(水) 04:39:39.43ID:PV/6ekcb
>>188
コンソールアプリ同士なんだから、まず標準入出力でダメか考えるべきじゃね
ソケット通信が必要ならまあやればいいけど、それだとそもそもコンソールアプリなのが正しいのか疑問だ
0202デフォルトの名無しさん
垢版 |
2017/12/07(木) 12:33:06.20ID:NfkoL/Di
>>201
それはGUIが基本なのかCUIが基本なのかの違いであって
コンソールアプリである必要性とは関係ないよね

別にGUIを基本にしろって主張じゃないよ
ただCUI=コンソールアプリってわけでもないだろうと
0203デフォルトの名無しさん
垢版 |
2017/12/15(金) 07:32:48.50ID:fJhEByrM
Task<string>型からstream型に変換するにはどうしたらいいでしょうか?
調べてもよく分からず詰まっています
0206デフォルトの名無しさん
垢版 |
2017/12/15(金) 22:48:43.84ID:Io6GZfPK
>>205
https://ideone.com/CfSqOZ
こんな感じでurlを投げて返ってきたものをstreamに入れたい
0207デフォルトの名無しさん
垢版 |
2017/12/15(金) 23:04:26.66ID:Io6GZfPK
// HTTPアクセス
var req = WebRequest.Create(url);
var res = req.GetResponse();
// レスポンスをオブジェクトに変換
Stream s = res.GetResponseStream();
StreamReader sr = new StreamReader(s);
string str = sr.ReadToEnd();

もともとConsoleAppでこう書いて動いてたんだがGUIベースのにしようとしたらGetResponseが使えなかった
代わりにGetResponseAsyncにしたらエラーが出てもっとわからなくなった
0209デフォルトの名無しさん
垢版 |
2017/12/15(金) 23:50:34.14ID:aqOMh7+X
低水準言語からC#に戻ってくるとlinqが有能すぎて困る困らない
ienumなんとかいうヤツにforeachないのはなんでなの?魔女のバァさんの呪いか?
0210デフォルトの名無しさん
垢版 |
2017/12/16(土) 00:22:04.98ID:IGcNQYtz
List<T>.ForEach(Action<T> action) みたいなやつのことかな?
はい副作用ドーン!はLINQとしてどうなのってことで入らなかった
0211デフォルトの名無しさん
垢版 |
2017/12/16(土) 00:24:11.12ID:ArLhqftT
console では処理を止めても良いから、同期処理でも良い

でも、GUI では処理を止めると、アプリが動かなくなるから、
50ms 以上掛かるものは、非同期処理が推奨
0213デフォルトの名無しさん
垢版 |
2017/12/18(月) 22:23:42.36ID:5DMorLlq
Int32へのIntPtrを渡さなければいけないのですが、unsafeコードしか方法はないのでしょうか?
現状、
Int32 int32;
IntPtr intPtr;
unsafe { intPtr = new IntPtr(&int32) }
someObject.someMethod(intPtr);
みたいな感じです。
0215デフォルトの名無しさん
垢版 |
2017/12/18(月) 23:03:00.80ID:5DMorLlq
System.Runtime.InteropServices.ComTypesで用意されてるインターフェース使うと、
IntPtrで宣言されてるんですよね・・
まぁ、自前でrefで宣言しなおしてもいいんですけど。
うーん。どうしよう。
0216デフォルトの名無しさん
垢版 |
2017/12/18(月) 23:05:43.88ID:5DMorLlq
まぁ、out,ref使わずにIntPtrで宣言すると、null渡せるっての1つの利点ですかね・・
COMインターフェースでオプショナルな引数もあって、そん時はnull渡してくれみたいのもあるんで。
>>213みたくunsafeしなければいけなならデメリットの方が大きそうですけど。
0217デフォルトの名無しさん
垢版 |
2017/12/19(火) 07:23:44.08ID:FokzMHrG
Marshal.AllocCoTaskMemするとか
new int[1]してGCHandle.AllocでPinnedしてAddrOfPinnedObjectするとか
0218デフォルトの名無しさん
垢版 |
2017/12/19(火) 13:37:53.98ID:IhvApffy
直接アンマネージにポインタだけ渡すってどうなんだろ
Marshal.AllocHGlobalとかしなくていいのか?
0219デフォルトの名無しさん
垢版 |
2018/01/06(土) 23:07:58.15ID:RVXlFPlL
いまだにどこまで.Pinnedしなきゃならないのかわからないw
趣味グラマだからわからないままでも問題はないんだけども
C#始めたころはいちいち書いていたが最近はずっと省いているな
0220デフォルトの名無しさん
垢版 |
2018/01/07(日) 00:09:48.08ID:X58Odkk6
変数がスタックにあるなら要らん
それ以外は必須
GCHandle.Allocは解放漏れでメモリリーク起こす可能性があるしパフォーマンスも悪いからなるべくfixed使った方がいい
0223デフォルトの名無しさん
垢版 |
2018/01/07(日) 00:52:39.44ID:MTMRs8S5
IntPtrってvoid*相当で型安全もクソもないし
AllocHGlobalもmallocを生で使うのと変わらん
unsafeよりよっぽどunsafe
0224デフォルトの名無しさん
垢版 |
2018/01/07(日) 03:57:43.36ID:BXo/eClR
C#のスクリプト実行がVSなしでも動かせて、Pythonとかの代わりに使える未来はないかな?
0226デフォルトの名無しさん
垢版 |
2018/01/07(日) 13:30:19.23ID:6UmxljW6
今のままだとpythonの代わりにはならんわ

pythonは標準のモジュールにスクリプト用やOS周りの便利な機能が組み込まれてる
0227デフォルトの名無しさん
垢版 |
2018/01/07(日) 13:43:21.05ID:6UmxljW6
pyhtonだと他のコマンドの出力をワンライナーで処理とかあるけど
C#はまあ無理だな

そういう所ですみわけされてる
適材適所
0231デフォルトの名無しさん
垢版 |
2018/01/07(日) 15:34:12.12ID:pcvnpBsv
getoptやargparseのようなものは欲しいと思ったな。その点ではMFCよりも退化してる。
0232デフォルトの名無しさん
垢版 |
2018/01/07(日) 20:30:21.44ID:5XHMA74k
ウェブサイトのリプレイスでPHPじゃなくてC#で書きたいので
上司を説得するために、PHPよりC#の方が言語的に優れてる点をまとめた

静的型付け
勝手に文字列、数値、真偽値等のプリミティブ型を変換しない
ジェネリクス
LINQ
名前空間名を指定してusing
非同期メソッド
ラムダ式
拡張メソッド
null条件演算子

逆にPHPの方が言語的に優れてる所ってなんだろう・・・
trait?
引数にタイプヒント付けるとnull安全になる所?
0233デフォルトの名無しさん
垢版 |
2018/01/07(日) 20:36:48.21ID:eDz/bjXs
言語だけじゃなく、開発環境、ライブラリなど総合的に決めるべきやね。
結果は自明だが。
0234デフォルトの名無しさん
垢版 |
2018/01/07(日) 20:40:46.23ID:7cGFvSiG
>>232
WebならC#は言語云々というよりプラットフォームの制約で選ばれるものだと思うぞ
サーバーがWindowsならC#はMSが強く推奨する第一の選択肢であり、よほどの理由がなければ他を使うべきではない
Linuxなら今では.NET CoreもあるけどPHP使ってるようなところの手に負えるもんじゃない
0235デフォルトの名無しさん
垢版 |
2018/01/07(日) 21:06:28.11ID:5XHMA74k
PHP製サイトはフレームワーク使ってるけど
考えなしに機能拡張し過ぎたため
自分が入社した頃には既にコントローラーが大変なことになってて
このままじゃヤバイから書き直す事になった

>>234
なんか難しいのか
今時はDockerですぐ動く環境ができる感じじゃないの?

.NET CoreはDockerで作ったことは無いけど
PHPでテスト用の環境は作った事がある
0236デフォルトの名無しさん
垢版 |
2018/01/07(日) 21:13:58.77ID:5XHMA74k
バックエンドだけC#で書いて
Angular等をフロントエンドに使う事を推す人も居るけど
RazorViewより良いの?

AngularやReact、Vueは別にクライアント側でしか使えない訳じゃなくて
node.jsでサーバーサイドでも使えるらしい
0237デフォルトの名無しさん
垢版 |
2018/01/07(日) 21:27:07.65ID:X58Odkk6
Linuxでちゃんとした言語使いたいならJavaでいいだろ
言語機能が不満ならKotlin使えば>>232は全部満たしてるぞ
リプレースでやるにはDocker&.NET Core&C#全部新規導入なんてリスクが大きすぎるし、
成長という観点を込みにしてもそれだけのコストをかけるほど価値のある選択とは思えん
DockerってことはAWSかなんかだろ?
どうしてもC#に拘るんなら素直にWin鯖立てとけ
0238デフォルトの名無しさん
垢版 |
2018/01/07(日) 21:27:26.11ID:pcvnpBsv
SPAはサーバー負荷を抑えられるのが良いね。
せっかくのSPAフレームワークをわざわざSSRするのはメリットがよくわからん。
0240デフォルトの名無しさん
垢版 |
2018/01/07(日) 22:19:38.07ID:5XHMA74k
言語に関してはKotlinに変えるのもC#に変えるのも同様にリスキーな気はする

.NET Core 1.0が出てから1年半しか立ってないからエコシステムの充実度的には劣るかもしれないけど
何も無い訳じゃないよね
Windows固有の物使ってなければ今までの物も移植可能な訳だし

>>238
SEO的にはサーバーサイドレンダリングもした方が良いと聞く
0241デフォルトの名無しさん
垢版 |
2018/01/07(日) 23:00:33.14ID:6UmxljW6
フロントエンドもバックグラウンドもtypescriptが一番まともな仕上がりになる
従事者数が全然違う
フレームワークの開発者のレベルも違う

asp.net coreが10年もつとは思えん
MSがあっさり捨てて5年後はなくなってるかもしれない
asp.net coreがこれからだと思うのはセンスない
今も死んでるのになんで選ぶ?
0242デフォルトの名無しさん
垢版 |
2018/01/07(日) 23:07:23.71ID:yGWRqm9V
そらマルチプラットフォームに対応せにゃ生き残れんからやろ
あれ?Windowsじゃなきゃあんま美味しくねぇな?

詰んだな
0245デフォルトの名無しさん
垢版 |
2018/01/08(月) 01:16:56.62ID:KwTiDosF
本当に素晴らしいテクノロジーは登場とともに
コアなサポーターがつく
残念ながらasp.net coreは誰の噂にも上らない
そもそも知られてない
多分web開発者が100人いるとしても知ってるのは3人ぐらいだろう
web開発者の間ではASPというワードは別の意味でしかとらえられない
0250デフォルトの名無しさん
垢版 |
2018/01/08(月) 01:38:06.32ID:KwTiDosF
asp.net coreがこれからだとか
web開発者の間で知名度が高いなんて思ってるほうがいかれてるわ

謙虚になって状況見ろよ
0252デフォルトの名無しさん
垢版 |
2018/01/08(月) 09:42:56.16ID:uW1MVRIb
公式の.NET CoreのデバッガーはVisual Studio Code/Visual Studio/Xamarin Studioでしか動かせない
規約で禁止されてる

https://github.com/dotnet/core/issues/505

JetBrainsのRiderは独自の実装を書いて動かしている
.NET Coreはなんか中途半端なオープンソース化だな

VSやXamarin Studio、Rider以外でデバッグするにはMonoしか無いって事なのか
でもMonoだとライブラリの対応がどうなのか
0253デフォルトの名無しさん
垢版 |
2018/01/08(月) 17:26:40.65ID:MM2bwnQX
EF Coreで[ConcurrencyCheck]属性を使って同時実行制御をしたいのですが
IQueryableをToList()で複数取得しようとするとTrackingされなくて困っています
SingleOrDefault()ならTrackingされて正しく動作します
やりたい事はデータをListで複数件取得して、それらの値を変更してUpdateRangeでまとめて更新したいです

どなたか解決策を教えてください
0254デフォルトの名無しさん
垢版 |
2018/01/09(火) 22:28:44.52ID:GTddlW8V
>>253
軽く試した範囲ではコンテキスト内ならListでもトラッキングされてるし
コンテキストまたいでもUpdateRangeで変更としてマークされて更新されたけど

勘違いじゃなければミニマムコードどっかに上げて
0255デフォルトの名無しさん
垢版 |
2018/01/09(火) 23:10:43.20ID:DIgE/yw0
ASP.NET以外にWebフレームワークってある?
Nancyぐらいしか見当たらない
他言語だと色々選択肢があるのに
0259デフォルトの名無しさん
垢版 |
2018/01/10(水) 00:14:38.81ID:oFasEgAN
NancyがASP.NET MVCより良い点は
この辺に書いてあった

http://blog.jonathanchannon.com/2012/12/19/why-use-nancyfx/
https://codeopinion.com/why-use-nancy/

・ルーティングが少ないコード量で書ける
・設定を出来るだけ少なくしている
・サーバーのレスポンスをテスト出来る
・TinyIOCで自動で依存関係を解決(他のIOCコンテナも一応使える)
・パイプラインフック(リクエストの前後で処理を実行)
・Content Negotiationで、ルートでResponse以外を返した時にResponseに変換
・何処でもカスタマイズ・拡張可能

ORMとかは付いてないから自分で好きなのを選んで使うスタイル
0260デフォルトの名無しさん
垢版 |
2018/01/10(水) 01:16:21.30ID:CFucH4eA
>>254
確かめて頂きありがとうございます
あれから試行錯誤して、OrderBy()の前にTake()を使うとTrackingされないことが判明しました

何故このような動作になるのか、どなたかご教授ください
0261デフォルトの名無しさん
垢版 |
2018/01/10(水) 02:31:16.64ID:lJNIeF4g
>>260
そんな動作にはならないから
お前の勘違いかお前が何か変な事してると思われ

とりあえずコード晒せや
0262デフォルトの名無しさん
垢版 |
2018/01/11(木) 20:18:43.43ID:IXbJ/o0c
1月の月例アップデートのKB4055532がおそろしくバグってるらしい
.net frameworkで文字化けしたり意味不明なエラーが連発したり突然アプリが落ちたりするそうだ

急にアプリの挙動がおかしくなったらまずそこに注意
0263デフォルトの名無しさん
垢版 |
2018/01/12(金) 16:30:11.62ID:VxcDYdZu
今C#でゲーム作る時unity以外で作れるフレームワークある?
0264デフォルトの名無しさん
垢版 |
2018/01/12(金) 16:31:56.51ID:OH7R1+qF
UnrealEngine4が使える。
俺はエアプだけど。
0266デフォルトの名無しさん
垢版 |
2018/01/12(金) 16:42:06.23ID:VxcDYdZu
3年前にXNAやってたけどもう意味ないよな?開発終了してるし、基礎勉強なら使えるかもしれないけど
0268デフォルトの名無しさん
垢版 |
2018/01/13(土) 12:28:38.59ID:V4m1sF41
C#で書かれたライブラリをネイティブコードにコンパイルして他の言語から使うって出来るんですかね?
ターゲットとなるアーキテクチャはIA32/AMD64系に限らずARM系なども含みます
MonoはLLVMを使っているらしいので出来そうな気もしますがそのような記事を見つけられず・・・

他の言語で使いたいライブラリはttps://github.com/vvvv/SVGです(SVGをレンダリングしたい)
0269デフォルトの名無しさん
垢版 |
2018/01/13(土) 13:01:40.70ID:we00kWgL
C#を動かすにはプロセス内でホストするなり別プロセスなりで必ずCLRを起動しなければならないので、
アンマネージコードから普通に呼べてクリーンで自己実行なライブラリを作るのはどうやっても無理
0271デフォルトの名無しさん
垢版 |
2018/01/13(土) 21:47:02.08ID:V4m1sF41
>>269
ありゃ、そうなんですか。.NET NativeやLLILC、SharpLangなどネイティブコードへコンパイルする処理系の
があったらしいのでネイティブコード化できるのかなと思ったのですがそう上手い話はないのですね

>>270
これはMono上で動いているライブラリを他の言語から使うラッパーでしょうか?
Monoが動く環境でないとダメか・・・
0273デフォルトの名無しさん
垢版 |
2018/01/13(土) 22:33:22.57ID:qrxuDtvr
>>271
ああそうか、「他の言語から使う」条件しか満たしてないね。
ネイティブコードにコンパイルしたいって書いてあったね。
しゅまん、これはmonoの上で動くやつ。
0274デフォルトの名無しさん
垢版 |
2018/01/13(土) 23:01:40.46ID:V4m1sF41
後出しだけど情報を小出しにするのも問題が大きいだろうから現状を。長文失礼

テキストなどの平易なベクターデータ(線、箱、円、文字など)をラスターデータに変換する
ラスタライザーが欲しい。ラスタライズ動作をカスタマイズできるとなお良い
ラスタライズ動作をカスタマイズしたい理由は最終的に欲しいラスターデータが2値モノクロなので
アンチエイリアスの有無や線幅等を調整できる必要があるため

動作させるプラットフォームはWindowsやLinux等を考えているけどOS無しでの動作もあり得るかも
呼び出す側の処理系はCかインタプリタなどからC経由で呼ぶ予定
最初はHTMLのレンダリングエンジンを検討したけどChromiumにしろFirefoxにしろカスタマイズして
実装する的な例を見つけられなかったのと無題に大規模になることもあって断念

次点としてSVG単体での利用を検討しはじめてイマココ。ググってみるとSVGのレンダラーとして
見つかったのはlibrsvgと>>268くらい。前者はGPL/LGPL故に一緒に使用可能なライブラリが制限されるし
後者はC#なのでネイティブで使えない?

う〜む。MonoってOS無しで動作させたり出来るのだろうか・・・

>>272
C++なSVGレンダラーってあったっけ・・・参考までにどれでしょうか?
0278デフォルトの名無しさん
垢版 |
2018/01/14(日) 11:56:09.47ID:TQ+v9n4/
> テキストなどの平易なベクターデータ(線、箱、円、文字など)をラスターデータに変換するラスタライザーが欲しい。

WindowsならネイティブAPIのDirect2Dそのまんまなように思えるが
(最近だと部分的にSVGのサポートも入り始めた)
0279デフォルトの名無しさん
垢版 |
2018/01/14(日) 12:29:24.23ID:vdiXiAP2
OS無しもとか言ってる奴に
> WindowsならネイティブAPIのDirect2Dそのまんまなように思えるが
とか人の話を聞く気がないのか壊滅的に理解力がないのかどっちなんだろ...
0280デフォルトの名無しさん
垢版 |
2018/01/14(日) 13:03:40.79ID:7MpxOyR3
そこまでのマルチプラットフォームを求めるなら、
俺ならAWS LambdaとかでWeb API 作ることを検討するわ
0281デフォルトの名無しさん
垢版 |
2018/01/14(日) 13:12:54.33ID:TQ+v9n4/
>>279
> WindowsやLinux等を考えているけどOS無しでの動作もあり得るかも

そもそもそのへんハッキリしねえから選択肢の一つとして紹介しただけだしなあ
SVGの直接的なサポートは別としてレンダリングの細かい要求は満たしてるしね
0283デフォルトの名無しさん
垢版 |
2018/01/14(日) 15:16:42.86ID:XENUVEJC
>>282
こういう人に絡むだけで何も建設的なことを言わない(言えない)馬鹿、
生きてて楽しいのかね
0284デフォルトの名無しさん
垢版 |
2018/01/14(日) 15:29:59.95ID:DgdnagvN
> こういう人に絡むだけで何も建設的なことを言わない(言えない)馬鹿
自己紹介乙
0287デフォルトの名無しさん
垢版 |
2018/01/14(日) 17:56:26.44ID:LoHxEWvM
OSを動かせるハードウェアを用意して>>270で行くかラスタライザーを新規作成するかのどちらかになるのかな

>>277
LGPLの波及範囲は諸説あってはっきりしないのでライセンスがらみのトラブルを回避する上でも避けたいです
0290デフォルトの名無しさん
垢版 |
2018/01/16(火) 15:45:19.73ID:ZKrd/Rqh
MVC5で質問です。
スキャフォールディングのEditアクションでキー項目はテキスト
それ以外のみinputにしようとしています
ビュー作成直後は全てinputで作成されますが
その後、キー項目だけテキストに変えるにはどうしたらよいでしょうか?
EditorForをDisplayForに変えるとなにも表示されなくなりDisplayNameForに変えるとモデルのプロパティの属性のDisplayNameで設定した文字列が表示されてしまいます。
0291デフォルトの名無しさん
垢版 |
2018/01/16(火) 17:21:24.89ID:ZKrd/Rqh
解決いたしました
バインドされているモデルがnullなのが原因でした
しかしnullなのにEditorForだと前の画面の値が引き継がれて表示されてるんですよね
腑に落ちないところもあるのですが、、
ありがとうございました
0292デフォルトの名無しさん
垢版 |
2018/01/18(木) 06:35:33.53ID:GdcUDZY8
小さいrestサービスだからHttpListnerでWindowsサービスで作ったけど
素直にWebサーバー立てた方が幸せでしょうか
0296デフォルトの名無しさん
垢版 |
2018/01/18(木) 10:50:13.65ID:P7FxR2VG
クラウド使いたいけど私の会社はまだ許可されてないのです
多分来期予算取れるからその時移行出来るようにはしたい

今後はわからんですが今のところユーザー少ない&社内のみなのでこれでいいかなぁ

気になるのは同時に接続来たらそれぞれスレッドが別になるのでしょうか
0298デフォルトの名無しさん
垢版 |
2018/01/18(木) 11:12:16.64ID:8W9zeKhd
>>295
サーバーレスなら自分でサーバーやサービス作るよりよっぽど簡単だぞ
金も社内のみなら余裕で無料枠に収まる
0303デフォルトの名無しさん
垢版 |
2018/01/25(木) 07:27:02.04ID:sgwDXLm5
自分はPHPとJavaScriptしかやったことがないので、WindowsのGUIアプリ開発は初めてです。
WindowsフォームとWPFをちょっといじりましたが、
WindowsフォームはUIをマウスで配置して動作を与え、
WPFはHTMLのようにUIはMLで記述する感じであとはフォームとやることは同じかなって思ったのですが、
この両者の違いはフレームワークの違いだと思いますが、
自分的にはWebからきたのでWPFのほうがしっくりくるのですが、
調べると重いとかで流行ってないらしいので、情報量的にもフォームのほうがいいのでしょうか?
UWPはインストールが面倒だったのでスルーしましたが、今からならUWPがいいですか?
あとC#ではC++にあるらしいWin32プロジェクトは出来ないのでしょうか?
どれ選べばいいのかわからなくて困っています。
0305デフォルトの名無しさん
垢版 |
2018/01/25(木) 09:56:25.38ID:NsBjyJ7C
Webの経験あるんならElectronでいいんじゃない?
WinFormsもWPFもとっくの昔に開発終了してるから今更新しく入るのはお勧めできないな
0307デフォルトの名無しさん
垢版 |
2018/01/25(木) 11:29:45.90ID:sgwDXLm5
レスありがとうございます。
>WinFormsもWPFもとっくの昔に開発終了してるから
それは衝撃です。
ビルドしてテストした感じ前者はビルド速度もリソース消費も良く、UIも期待通りで、
後者はビルドが遅くて、UIも表示通りにならなかったり、テストするのは面倒だなという印象でしたが、
もう改善が見込めないんですね。
UWPはWPFよりっぽいので、心配ですが、UWPをインストールして触ってみます。
いずれXamarinやUnity使ってみたいのもあって、C#の勉強をしてるので、
しばらくはVSでWindows用のアプリケーション作りながら頑張ってみます。
0308デフォルトの名無しさん
垢版 |
2018/01/25(木) 11:55:18.40ID:Fo/ckcIY
割と最近になってWinformsにHiDPI対応強化やWPFもスタイラス対応強化が入ったりしてるから
とっくの昔に開発終了は語弊があるけどね
とはいえMS自身の都合による突発的な更新という意味合いが強く
積極的にフィードバックを受けての修正や強化というフェーズはUWP以外終えてる感はある

.NETという基盤やIDEは優れているのに肝要のGUIフレームワーク選びでgdgdになるのマジうんこ
0309デフォルトの名無しさん
垢版 |
2018/01/25(木) 16:45:28.98ID:89fISl4P
UWPとWPFは似たようなものだから、どっちから学習しても問題なし。
覚えたことは簡単にUWPからWPFまたはWPFからUWPに移行できる。
そりゃ、コントロールとか微妙に違ったりすりけど、大きな問題にならんだろう。

xamlの機能に違いがあったりと、高度な事をやろうとすると差がでてくるけど。

だから、学習フェーズの普通の事する分にはどっちから入っても問題なし。
0310デフォルトの名無しさん
垢版 |
2018/01/25(木) 16:51:20.84ID:89fISl4P
>WinFormsもWPFもとっくの昔に開発終了してるから
後、WPFにもFluent Design対応ぐらいはくるんじゃないの?
0311デフォルトの名無しさん
垢版 |
2018/01/25(木) 17:40:23.41ID:wJAGA7/R
>>310
そういうお仕着せ的なものを持ち込むのはWPFの思想にそぐわないからそれはないよ
WPF的には、開発者が望むならFluent Designを実装できるだけの機能を備えている、で十分
そういうDIYな思想こそがWPFが使い辛いと言われる最大の原因でもある
0312デフォルトの名無しさん
垢版 |
2018/01/25(木) 19:10:14.30ID:89fISl4P
去年のBuild2017のセッションの資料に明言じゃないけど、それをにおわせる
ような事が書いてあったんだけどね
0313デフォルトの名無しさん
垢版 |
2018/01/25(木) 20:47:58.93ID:4wfdsI+N
>>311
備えているならせめてForm時代と同じことさせてくれよ
なんでListViewの罫線自分で描かなきゃいけないんだよ
0314デフォルトの名無しさん
垢版 |
2018/01/26(金) 09:47:56.58ID:fiAB4bjj
WPFはおわったんだ
それをまた何十人〜何百人のチームを作ってわざわざ新しいものを実装するだろうか?
0315デフォルトの名無しさん
垢版 |
2018/01/26(金) 21:19:07.38ID:WiPs5FQl
.Net Frameworkのバージョンアップの内容追うと、WPFも地味に改良されてるけどね。
0316デフォルトの名無しさん
垢版 |
2018/01/28(日) 22:51:48.28ID:EAfEAz/a
開発が終わったとか時代が終わったとか言われても趣味でやる分にはWinFormが一番楽
仕事でやる人は逆に何でも対応しなきゃならないだろうし
0319デフォルトの名無しさん
垢版 |
2018/02/01(木) 10:15:12.44ID:Odjas+cj
コマンドラインのオプションを解析・パースするエレガントなLinqを教えてください

例えば、
-i "hoge.txt" -i "fuga.txt" -o "hogefuga.txt"
というコマンドを受け取った時、
{
 "i" : [ "hoge.txt", "fuga.txt" ],
 "o": [ "hogefuga.txt" ]
}
こんな結果に変換したいです
GroupBy()を使えば出来そうな気がするのですが上手くいきませんでした
0321デフォルトの名無しさん
垢版 |
2018/02/01(木) 11:32:56.22ID:jtx9E0YE
標準Linqだと辛いので拡張書くかな

少なくともコマンドラインオプションとオプションの引数をひとまとめにするやつは欲しい感ある
0322デフォルトの名無しさん
垢版 |
2018/02/01(木) 11:39:56.90ID:DhFBeVpN
クラス使わないと非常に汚いことになるし
オプションの設定を渡さないといけないのでlinqだけでは不可

たとえば-sがオプション必須かどうかがパーサーにはわからない

a.exe -s a.txtが

(a.exe)(-s a.txt)か
(a.exe)(-s )(a.txt)か
0323デフォルトの名無しさん
垢版 |
2018/02/01(木) 11:50:41.19ID:DhFBeVpN
c#ができたころからコマンドラインオプションの話はずっと言われてる
昔から独自実装したものはあちこちにある
0326デフォルトの名無しさん
垢版 |
2018/02/02(金) 06:35:27.68ID:Ppc5wcU7
初歩的なことなのですが・・・
ドット(.)を使って他所のメソッドやクラスを引用?してくるのをよく見かけますが
それがメソッドなのかクラスなのか見分けるにはどうすれば良いですか?

(クラス).(メソッド) の場合もあれば
(メソッド).(変数) の場合もあるのですよね・・・?
0331デフォルトの名無しさん
垢版 |
2018/02/02(金) 22:33:25.08ID:Ppc5wcU7
>>327
すみません ()の有無でどう判断が付くのでしょうか・・・?

>>328-330
そうだったのですね・・・
見分ける必要がないのですか 難しいです
プロパティなのですね 気を付けます
教えて頂きありがとうございます!
0334デフォルトの名無しさん
垢版 |
2018/02/02(金) 22:44:04.39ID:Ppc5wcU7
>>332
>>333
そういうことだったのですね
勉強になりました これで少し先に進めます・・・
ありがとうございます! 精進します
0336デフォルトの名無しさん
垢版 |
2018/02/03(土) 05:49:32.16ID:aLwGqXOU
>>335
そういったスレッドがあったのですね;
ありがとうございます 次からそちらで質問をします
0337デフォルトの名無しさん
垢版 |
2018/02/04(日) 00:03:18.19ID:zMXPgQ7i
>>324
.NET Core 2.1ではビルドのパフォーマンスが大幅に改善されてるらしい
OrchardCoreのビルドで70秒かかってたのが7秒弱に
0338デフォルトの名無しさん
垢版 |
2018/02/04(日) 13:04:59.39ID:ORFvnFl0
>>337
.NET Core SDKをv2.1.4にして
早くなった…ような気もする

ソースを何も変更してなくても変更をスキャンするのは無くならないんだろうか?
本家.NET Framework+Visual Studioだと
何も変更が無い場合はほぼ一瞬だったのに
0343デフォルトの名無しさん
垢版 |
2018/02/05(月) 22:58:44.51ID:NyyXMpDu
C#のアプリからエクセルのシートのような罫線や文字が書かれたものをプリンターで印刷したいのですが、プリントオブジェクトで一つ一つ座標を確認して描画しながら印刷するしかないでしょうか
何かいい方法などあればご教示下さい
オフィスが入ってない環境でも実施出来るようにしたいのでエクセルは使えません
0345デフォルトの名無しさん
垢版 |
2018/02/05(月) 23:34:01.06ID:SQrOQm2p
>>343
WPFは知らないけどGDI+でちょっとした表を印刷するなんて
たぶん思ってるより簡単だから自分で書いた方が早いよきっと
0347デフォルトの名無しさん
垢版 |
2018/02/05(月) 23:44:05.24ID:ny8aWquH
>>343
どんな表を想定しているのかわからない。DataGridViewとかはだめなの?
フリーの表計算ソフトインストールしたほうが確実だと思うよ
どっちにしても画面出力ならともかくプリンタ出力はC#だと信用できない
0348デフォルトの名無しさん
垢版 |
2018/02/05(月) 23:59:26.55ID:SQrOQm2p
ライセンス関係がどうだか知らんけど、まだクリレポもあるみたいだね
でもまあ、余程こった印刷するんじゃなきゃ、自分でゴリゴリ書いた方が早いし応用も利く
0350デフォルトの名無しさん
垢版 |
2018/02/06(火) 00:44:49.14ID:l8gmJN+/
今のHTMLって物理単位で座標やサイズ指定できるの?
俺はまったくいい案だと思わんね
0351デフォルトの名無しさん
垢版 |
2018/02/06(火) 00:51:18.50ID:oHH9MXTk
HTMLで帳票出力するアプリなんか世の中いくらでもあるだろ
帳票にミリ単位の精度を要求される高度なお仕事お疲れ様です笑としか
0352デフォルトの名無しさん
垢版 |
2018/02/06(火) 00:56:31.42ID:l8gmJN+/
倒錯してるね
A4ならA4に綺麗に収まるようにレイアウトするなんて最低条件。
子供の遊びじゃないんだから
0354デフォルトの名無しさん
垢版 |
2018/02/06(火) 01:55:56.74ID:ZfaRyY6g
あるフォルダにexe配置して、複数人で同時起動する場合log吐き出し等、PC事に吐き出せますか?
0356デフォルトの名無しさん
垢版 |
2018/02/06(火) 06:38:37.96ID:cOwJgUBz
>>343です
レス頂いた方ありがとうございます
基本的には地道にやるしかないんですかね
GDI+はもう少し調べてみます
html+cssは確かにかなり使えそうなので今後の引き出し用兼ねて、じっくり試してみてみます
0357デフォルトの名無しさん
垢版 |
2018/02/06(火) 12:42:53.23ID:ulWyhWyT
Excelをテンプレートにして値を埋め込んで印刷できるツールなら(金を出せば)あるよ
0359デフォルトの名無しさん
垢版 |
2018/02/08(木) 23:07:17.93ID:+IVP5b8H
帳票のデータをDBにぶち込むアプリ作ってるんだけど動的なSQL文作成って普通はどういう作り方をするもの?
今は列が2個とか3個だから@"insert〜"ってベタ書きしてsqlparameterで値入れてるけど
元データがファイルならSQLインジェクションは考えなくていいはずだからSQLparameter使う必要はないはずだし
列の数が増えたら改造が大変になるから改修作業が楽になるような作りにしたい
今はSQL文作成部分をDBごとに別々のメソッドで書いてるけどこれも共通化できるもん?
0361デフォルトの名無しさん
垢版 |
2018/02/08(木) 23:31:11.72ID:rH5InDMM
パラメーター渡すだけで普通はSQL文はいじらないと思う
テストに困る
SQL専門家がいるところではそんな感じ
0366デフォルトの名無しさん
垢版 |
2018/02/09(金) 21:41:45.33ID:MBw5inWy
>>365
私の会社は運送業界なので荷札とか直接紙で出しています。excelやaccessで帳票出せるのですが、荷札に綺麗に印刷するには各端末の設定に依存していて、変更する度にその設定作業で禿げそうなのです。
あとExcelとかはバージョン管理ソフトで差分見れないのもストレスです。
0370デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:09:33.30ID:1LSHehib
Null非許容型自体は悪くない

標準のclassをNull非許容型にする必要はない
Null許容前提で設計されてるものをなぜ急にNull非許容にする?

クラスをまともに設計してないのか?
0371デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:14:21.55ID:1LSHehib
意識高い系の人達が標準のclassをNull非許容型にしたいだけ


null非許容にするとこれまでロジックミスでnullになってたものが意図しない初期値になってるだけで
不具合自体が見つかりにくくなる
今までは止まってたからわかったけどそれがわからなくなる

動いてるけど何かおかしい状態が増える
0372デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:20:49.47ID:1LSHehib
普通だったら今までのを標準にして新しい機能を拡張とする
それが今度は逆でさらっと破壊的変更が入りましたで終わり
0373デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:24:08.69ID:1LSHehib
>Null非許容型を前提としたものかどうかAssembly単位でも設定できる

アセンブリ単位だと言うことが問題だと思うけど
既存コードはそのまま通せないということ
0374デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:25:31.74ID:1LSHehib
> >>401
> 大方どっかのチュートリアル通りの手順を踏んだだけで、現在のproposalなんか確認してないんだろうな
> そんなん猿でもできるわ

そちらの猿はやった?
それとも猿以下?
0375デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:29:13.80ID:1LSHehib
WPF使えないやつは馬鹿
MVVM使えないやつは馬鹿
Rx使えないやつは馬鹿

とか言ってるけど全然普及してない
使えないんじゃなくて使ってないだけ
0377デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:31:07.00ID:1LSHehib
ソース単位で見てこれはどっちの仕様のソースなんだろうかと考えないといけない時点でおかしい
0396デフォルトの名無しさん
垢版 |
2018/02/12(月) 13:00:24.72ID:1LSHehib
>defaultのclassを非Null許容型に変えるのは破壊的変更ではないのですか?
これにすら答えられないんだから言っても無駄か
0399デフォルトの名無しさん
垢版 |
2018/02/12(月) 13:05:59.25ID:JscGAjhj
俺は最先端(笑)追いかけるの興味ないんで実際にはどうだか知らないけど、
常識的に考えればMSが既存のコードに重大な影響がでるような破壊的変更を許容するはずがない。

杞憂を通り越して被害妄想にしか聞こえんなあ
0400デフォルトの名無しさん
垢版 |
2018/02/12(月) 13:13:51.10ID:zF+PsA7+
>>399
今のMSはVSのマイナーアップデートに平気で破壊的変更ブチ込んでくるぞ
C#7.1も正式リリースでバグ出しまくって破壊的変更で修正入れてる
リリースに客のお伺い立てないといけないような連中はもう相手にしてないんだよ
0407デフォルトの名無しさん
垢版 |
2018/02/12(月) 14:46:39.13ID:TMI0FNbG
>>400
プロジェクトのデフォルト設定では、言語バージョンは最新のメジャーバージョン(C#7.0)を使用するようになっているのだが。
0408デフォルトの名無しさん
垢版 |
2018/02/12(月) 15:44:48.47ID:Pw+gk9aA
ふらっとがバカの間違った知識自慢であふれていて見苦しい
常駐している奴らはまともに動くコード書けないんじゃね
0410デフォルトの名無しさん
垢版 |
2018/02/13(火) 04:16:20.96ID:TnW8OQre
初心者です。
C#でMainWindow.xamlのtextbox name=a,b,c を
MainWindow.xaml.csにて配列に格納する場合、どう書けばいいですか?
0411デフォルトの名無しさん
垢版 |
2018/02/13(火) 04:39:44.73ID:TnW8OQre
質問場所間違えました。
申し訳ないです。
0412デフォルトの名無しさん
垢版 |
2018/02/13(火) 19:34:05.41ID:TAJsnxHz
C#とは直接関係ないかもしれませんが教えてください。
VS2010で開発したEXEですが、DropBox上で起動するとタスクバーにアイコンが表示されません。
本来表示されるはずのアイコンが「白」で表示されてしまうのです。 

そこで、ローカルの C:\hoge\test.exe といった具合に配置して実行するとしっかりタスクバー上にアイコンが表示されます。

↓の手順も試してみましたがやはりだめです。
これは、Windows 10のアップデートによるバグなのでしょうか?
https://win10labo.info/win10-non-icon/
0415デフォルトの名無しさん
垢版 |
2018/02/14(水) 01:33:09.58ID:S7evEIWT
C#のコード規約って何かデファクトスタンダードなものありますか?
開発者がDelphiなこともあって一般的でない自負があるのか
自分流に統一できてれば問題がないという感じで緩いのはわかるのですが
0417デフォルトの名無しさん
垢版 |
2018/02/14(水) 06:56:03.38ID:gDDPraVt
業務系ではほぼオワコンなので今更コード規約を厳しくしても将来性はないだろう。
0418デフォルトの名無しさん
垢版 |
2018/02/14(水) 07:15:08.04ID:UFv5UzG3
どこがオワコンなんだよw
0420デフォルトの名無しさん
垢版 |
2018/02/14(水) 19:26:47.67ID:nuSxC/3c
codePlex終了はC#終焉への序曲なのか?MSはいつも中途半端で投げ出すからな
0421デフォルトの名無しさん
垢版 |
2018/02/14(水) 19:47:09.70ID:T5cdiKE6
CodePlexがサービスを終了し、GitHubへの移行が推奨される
https://www.infoq.com/jp/news/2017/04/codeplex-github
>Microsoftは、CodePlexプロジェクトから知名度の高いgitホストへのインポートを効率的に進めるためにGitHubと協力してきた。
>移行手順がプロジェクトのソースコード、ライセンス、およびドキュメントをGitHubに移動する際のガイドラインと共に準備された。
>移行ツールは、イシューの移動をサポートするよう拡張される予定である
>>420
MS自身が移行を積極的にやっていてCodePlexでできた資産まで捨てるわけじゃない

C#がオワコンだろうが趣味でしか使っていないから使い続けるだけ
仕事でやっているけど他はできないって人間が万が一いたらそのままシネ
0428デフォルトの名無しさん
垢版 |
2018/02/15(木) 18:44:37.89ID:ePyF0aqH
MSがPWAってのに手を出すことになったことで、将来的に需要が縮小する可能性は高くなったな
特にASPは直接的な競合となるから厳しい
0430デフォルトの名無しさん
垢版 |
2018/02/16(金) 08:34:37.83ID:CNSe2opu
unityはc#一択
スマホのマルチプラットフォーム開発もザマリンでc#一択
じゃなかったんか
0434デフォルトの名無しさん
垢版 |
2018/02/16(金) 12:47:11.47ID:eIPn6egw
そういう気色の悪いことを平気で掛ける自分を気色悪いと思わなくなったら
もう立派なストーカー予備軍。

どうせキモータなんだろうけど、執着するのはアイドルか2次元にしとけよほんと。
きもっ
0437デフォルトの名無しさん
垢版 |
2018/02/17(土) 07:47:44.42ID:uYVlOSlz
C#がだめとして
そしたら次はなにやったらいいの?
JavaScriptとかしょぼいのやらなあかんの?
0439デフォルトの名無しさん
垢版 |
2018/02/17(土) 09:11:00.41ID:JhxlZtl8
ダメとしての意味が分からないけど、
他にもいろんな言語があるから好きなのを使えばいいよ

TypeScript
Python
Go
このあたりがいいんじゃないか

さらにやる気があれば
c++
0440デフォルトの名無しさん
垢版 |
2018/02/17(土) 11:33:56.32ID:uYVlOSlz
元Pythonistaやで
C++よりはRustがええなあ
でもTypeScript含めてJavaScript系は好きになれんなあ
0441デフォルトの名無しさん
垢版 |
2018/02/17(土) 12:57:15.63ID:x5wAmZVS
ふらっとスレもそうだけど「C#を使う人の雑談スレ」だと思っている人多いな
こんな過疎っているところでなくマ板に行けばいいのに
0442デフォルトの名無しさん
垢版 |
2018/02/18(日) 14:16:27.97ID:SXTB1pky
初心者ですが質問させてください。

VisualStudio2017でDLLの作成をしようと思っています。
DLLプロジェクトのなかでSystem.ConsoleやSystem.IO.Pathクラスを使用したいのですができません。
「現在のコンテキストに 'Path' という名前は存在しません。」というエラーです。

コンソールアプリのプロジェクトなら問題なく使用できます。
どうすればDLLのプロジェクトでも使用できるようになりますか?
0445デフォルトの名無しさん
垢版 |
2018/02/18(日) 18:13:44.57ID:SXTB1pky
>>444
Console等はmscorlib.dllだと思うんですが参照の追加をすると「既に自動的に参照されています」と出ます・・・。

>>443
了解しました!
0446デフォルトの名無しさん
垢版 |
2018/02/18(日) 19:11:32.24ID:uudF1O4B
>>442
プロジェクト間違っているだろ
クラスライブラリ(.Net Framework)を選べ
プロジェクト選択画面の右側に(.dll)を作成するための〜って表示されるはずだから
それでもできないのなら必要なものをインストールしていないか何か余計なことをしている
0447446
垢版 |
2018/02/18(日) 19:30:14.33ID:uudF1O4B
ヒマだったんで簡単なサンプル
クラスライブラリ
https://ideone.com/Sho1IP
それを利用するコンソールアプリ
上で作ったdllを参照に加えてビルドすること
https://ideone.com/PSzA8t
実行ファイルにドロップされた"*.txt"ファイルをシフトJISとして読込みコンソールに表示するだけ
どっちもVS2017のデフォルトの設定で作られている
0449デフォルトの名無しさん
垢版 |
2018/02/18(日) 19:38:05.86ID:SXTB1pky
>>446
クラスライブラリのプロジェクトは全部試しましたができませんでしたね・・・。

「ユニバーサル Windows プラットフォーム開発」というのをインストールしていなかったのでそれを試してみます!
返信していただいてありがとうございます!初心者用のスレは荒れていて質問できる空気ではなかったので・・・
0450デフォルトの名無しさん
垢版 |
2018/02/18(日) 19:43:58.15ID:uudF1O4B
>>449
それUWPアプリで違うから。できるかもしれないけどインストールしていないんでわからないw
取りあえず書いたとおりにやってくれよw
0451デフォルトの名無しさん
垢版 |
2018/02/18(日) 21:16:05.35ID:SXTB1pky
>>450
色々やった結果やっぱろプロジェクトが間違ってたいで無事できました。
ごめんなさいお手数おかけしました;;
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を超えています。これ以上書き込みはできません。

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