C#, C♯, C#相談室 Part95
■ このスレッドは過去ログ倉庫に格納されています
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part94
http://mevius.2ch.net/test/read.cgi/tech/1492843013/
■次スレは>>970が建てる事
建てられない場合は他を指定する事。 >>413
埋め込みリソース????
ちょっと調べてみます。 C#のコード規約って何かデファクトスタンダードなものありますか?
開発者がDelphiなこともあって一般的でない自負があるのか
自分流に統一できてれば問題がないという感じで緩いのはわかるのですが >>415
命名ならこの辺
https://msdn.microsoft.com/ja-jp/library/ms229002.aspx
あとはVisualStudioのコード分析とか
書籍ならEffective C#
来週新刊のMore Effective C# 6.0/7.0も出るぞい 業務系ではほぼオワコンなので今更コード規約を厳しくしても将来性はないだろう。 codePlex終了はC#終焉への序曲なのか?MSはいつも中途半端で投げ出すからな CodePlexがサービスを終了し、GitHubへの移行が推奨される
https://www.infoq.com/jp/news/2017/04/codeplex-github
>Microsoftは、CodePlexプロジェクトから知名度の高いgitホストへのインポートを効率的に進めるためにGitHubと協力してきた。
>移行手順がプロジェクトのソースコード、ライセンス、およびドキュメントをGitHubに移動する際のガイドラインと共に準備された。
>移行ツールは、イシューの移動をサポートするよう拡張される予定である
>>420
MS自身が移行を積極的にやっていてCodePlexでできた資産まで捨てるわけじゃない
C#がオワコンだろうが趣味でしか使っていないから使い続けるだけ
仕事でやっているけど他はできないって人間が万が一いたらそのままシネ CodePlex閉鎖とかいつの話だよ石器時代から来たのか? MSがPWAってのに手を出すことになったことで、将来的に需要が縮小する可能性は高くなったな
特にASPは直接的な競合となるから厳しい >>428
何の需要が?PWAとASP.NETは競合(比較対象)にはならないけど unityはc#一択
スマホのマルチプラットフォーム開発もザマリンでc#一択
じゃなかったんか あのふざけたスライドが無ければそうなっていたかもしれないね そういう気色の悪いことを平気で掛ける自分を気色悪いと思わなくなったら
もう立派なストーカー予備軍。
どうせキモータなんだろうけど、執着するのはアイドルか2次元にしとけよほんと。
きもっ C#がだめとして
そしたら次はなにやったらいいの?
JavaScriptとかしょぼいのやらなあかんの? >>437
向いていないからプログラマやめればいいよ ダメとしての意味が分からないけど、
他にもいろんな言語があるから好きなのを使えばいいよ
TypeScript
Python
Go
このあたりがいいんじゃないか
さらにやる気があれば
c++ 元Pythonistaやで
C++よりはRustがええなあ
でもTypeScript含めてJavaScript系は好きになれんなあ ふらっとスレもそうだけど「C#を使う人の雑談スレ」だと思っている人多いな
こんな過疎っているところでなくマ板に行けばいいのに 初心者ですが質問させてください。
VisualStudio2017でDLLの作成をしようと思っています。
DLLプロジェクトのなかでSystem.ConsoleやSystem.IO.Pathクラスを使用したいのですができません。
「現在のコンテキストに 'Path' という名前は存在しません。」というエラーです。
コンソールアプリのプロジェクトなら問題なく使用できます。
どうすればDLLのプロジェクトでも使用できるようになりますか? >>442
エラーが出るミニマムコードを作ってふらっとで質問してください >>444
Console等はmscorlib.dllだと思うんですが参照の追加をすると「既に自動的に参照されています」と出ます・・・。
>>443
了解しました! >>442
プロジェクト間違っているだろ
クラスライブラリ(.Net Framework)を選べ
プロジェクト選択画面の右側に(.dll)を作成するための〜って表示されるはずだから
それでもできないのなら必要なものをインストールしていないか何か余計なことをしている ヒマだったんで簡単なサンプル
クラスライブラリ
https://ideone.com/Sho1IP
それを利用するコンソールアプリ
上で作ったdllを参照に加えてビルドすること
https://ideone.com/PSzA8t
実行ファイルにドロップされた"*.txt"ファイルをシフトJISとして読込みコンソールに表示するだけ
どっちもVS2017のデフォルトの設定で作られている dllを作らずに別で作ったプロジェクトを追加して使うのって邪道ですか? >>446
クラスライブラリのプロジェクトは全部試しましたができませんでしたね・・・。
「ユニバーサル Windows プラットフォーム開発」というのをインストールしていなかったのでそれを試してみます!
返信していただいてありがとうございます!初心者用のスレは荒れていて質問できる空気ではなかったので・・・ >>449
それUWPアプリで違うから。できるかもしれないけどインストールしていないんでわからないw
取りあえず書いたとおりにやってくれよw >>450
色々やった結果やっぱろプロジェクトが間違ってたいで無事できました。
ごめんなさいお手数おかけしました;; >>451
解決できたのならこっちもほっとしたよw
報告お疲れ様です public class MyClass<T> where T : MyClass<T>
{
・・・
}
こんなコードを見たのですが、意味を教えて下さい。 「ジェネリックのwhere」はともかく、
「作れないクラスの作り方」は気になるなw C#と.NET Frameworkの標準ライブラリだけでFAX処理ってできます? 外部ネットワークに繋がる環境で動かす前提とは限らないしなぁ FAXどころかプリンタすらC#使ってやるのは不安になるなあ
趣味レベルでちょっとしたツール作る分には楽でいいんだけど ソースコード読めば、C#ってこんなもんかって安心できるぞ >>465
何のソースコードを読むんだよ
WinAPIやCOM使ってできることならなんでもOKって知っていればどうでもいい >>466
何のソースってC#のライブラリのソースだよ
>WinAPIやCOM使ってできることならなんでもOKって知っていればどうでもいい
だったらなんで不安になるんだ? 芥川龍之介の念波、我が身に降臨せり
「何か僕の将来に対する唯ぼんやりとした不安である」 >>469
不安とか言ってないでさっさと邪宗門の続き書いて この板には羅生門に登場するような地獄の住人・魑魅魍魎が跋扈してるな LINQのWhereで
匿名関数に渡されるエンティティを他のメソッドに渡したりするとOneToManyを使う条件が動かない
これに気付かず小一時間無駄にした
エンティティの代わりにIQueryableを渡すことにした
こっちの方が書きやすいし条件を再利用出来る LINQというか
Entity Framework Coreのデータベースにクエリーする時のLINQ C#だと、C++同じように書いてもずっと遅くなることがある。
それにメモリを多く食う傾向も。GCはどのタイミングではいるか分からないから、
スクロールの途中で入った場合は、まるでPC-8801のBASICで書いたプログラム
のように素人っぽいアプリになる。C++が使える人が使うのは推奨しない。 C#はC++と違って速さではなく信頼性に重きを置いてるから仕方ないね
インスタンスはともかくアンマネージリソースは明示的に破棄するとか
ファイナライザ任せにしない等の言語に合わせた組み方をする他ない C++経験者でC#のパフォーマンスが落ちたり不安定になる人は、そもそもC++自体のスキルが低いと思う
関数ポインタとか仮想関数とかちゃんと使えないんじゃないかな >>478
unsafe突入コストはどうにもならん。そんなことも分からないのはC#を碌に使ってないから。 >>475
ちょっと工夫すれば避けられる場合も多いし、C++に戻りたくは無いなぁ。
どうにもならない場合はスピードが必要な部分だけC++にするけど。 >>479
unsafeはオーバーヘッド無いぞ
アンマネージコードとごっちゃになってるのかな?
C#を碌に使ってる人の言うことは違うね C#のunsafeは使い勝手が悪いから使わないな
デバイス制御とかでポインタが必要ならC++でDLL化して、C#側はDllImportするだけだし
C++をちゃんと分かっている人なら大抵参照渡しで済ませるから、ポインタ使う必要ないよね
あとはWindowsAPIのDLLをそのままC#側にImportする手もある
C++の関数コールバックもC#側のdelegateで問題なく使える unsafeは不当に忌避されすぎだと思う
IntPtrとかいう実質void*を駆使したコードなんて、unsafeよりよっぽど危険だわ
ちょうど479のように、unsafeコード=アンマネージコードという誤解も未だに根強いし >>481
意味すら分からないレベルか。馬鹿は黙ってたほうがいい。 >>483
unsafe突入コスト → unsafeコード=アンマネージコード
おまえもか。脳みそに蛆でも沸いてるかと思うレベルの理解力。ほんと馬鹿は黙ってたほうがいい。 頭おかしい御仁、こっちにも湧いてござるなw
無益だから相手にしない方がいいよ 「unsafe突入」がオレオレ定義で具体的にどこかを示さず逃亡するに一票 > unsafeはオーバーヘッド無いぞ
> unsafeコード=アンマネージコードという誤解
こんな馬鹿レスしたあとにくだらない煽りか。低スキルにもほどがあるな。>>486 必死にID変えて連投してるからいつもの知ったか馬鹿だな。
相手にした俺が馬鹿だったわ。 C++で内部のメモリ構造を考えていない人がC#を使うと
パフォーマンス落ちて不安定なコードになりやすい、っていう話なのに
なんでC#でunsafe使う前提になっているんだろう? >>490
内部のメモリ構造てw
お前c++使えんやろ何の勘違いしとるんやw >>478
自分はC++の仮想関数も関数ポインタも難なく使ってる。そして、C#は自分では使った
事が無い。でも、他人が作った.Net製のアプリを見て余りの遅さに.Netが普及しては
困ると思った。Vectorに登録されてるアマチュアのC/C++のプログラムでも見たことがない
ような遅さの.Netのプログラムをハードウェアメーカーが付属品として付けて来る。プロ
なのに。 そりゃ単に作った奴の所為じゃないか…プロなんて生業というだけで
プログラマーと呼べない連中など腐るほど居るし、門戸が広ければ蔓延るであろう
JITコンパイルとか境界チェックとかコードセキュリティとかオーバーヘッドは有るけどさ XNAでゲーム作ってキャラクター10万個くらい出してもほとんど処理落ちしなかったのに
まともにコード書いた普通のソフトでそうそう遅くなるとは思えん .Netは間に色々入るのでCPUキャッシュの効きが悪くなり、キャッシュの多いCPUでは
C++のNative Binaryの2.5倍程度の遅さで済んでもキャッシュの少ないCPUでは急激に
遅くなる可能性があるかも。キャッシュミスがあると、数千クロックのオーバーヘッドが
生じるので、C++の1000倍くらい遅くなる可能性がある。 ロクに使ったこともない人がドヤ顔で解説とかシビレル [間違い(または嘘つき)記事発見]
以下のリンク先の速度比較で、C# では言語Nativeな配列を使っているのに、
C++では、std::unique_ptr<> を使ってしまっている。そもそも、C/C++は、
高級アセンブラみたいなものだから、書き方を間違わない限りは、C#より遅くなる
はずがない。
「C#がC++より高速になった?」:
https://qiita.com/Chironian/items/e8c9f0147669f941936a
C#
static void setLargeArrayManaged1()
{
var aArray = new byte[kCountLai];
・・・
C++
void setLargeArray()
{
std::unique_ptr<byte[]> aArray(new byte[kCountLai]);
・・・
公平に比較したいなら、以下のようにすれば良いだけ。こっちの方がC#と
ソースレベルでも似ている。この著者は馬鹿としか言いようがない:
C++
void setLargeArray()
{
byte *aArray = new byte[kCountLai];
・・・
delete [] aArray; LINQは便利だけど落とし穴も多い
でも便利過ぎて手放せない Linqは裏側の動作までイメージ出来ないと簡単ゴミ作れちゃうのよねん LINQだけでググるとこれが出てきてしまう。
LinQ(リンク)は日本の福岡県福岡市を拠点に活動しているローカルアイドルグループ。
この項目では、女性アイドルのローカルグループ LinQについて説明しています。
統合言語クエリ LINQについては「統合言語クエリ」を、その他のLINQについては「リンク」をご覧ください。 C#が遅くないとか言ってる奴に限ってアセンブラ経験がない。C#信者はVB厨とJava厨と同じレベル。 設計思想が異なる対象まで遅いだの速いだの言語価値はそれだけかよ
ソースが同じなら処理も同じなんて考えるのが居たらdでもない事だ
C#やILのコンパイラに瑕疵があるのなら然るべき所へ報告すれば良い >>505
AWS Lambda使ったことないと誤解を生みそうな記事だなこれ
Lambdaのランタイムのオーバーヘッドを測ってるだけで、実質的なコードの実行時間はほとんど関係ないよこれ プログラムを書いていてちょっと迷ってると、VisualStudioがメソッド等について説明の吹き出しみたいなのを出してくれるけどさあ
あそこに出てくる説明の文章部分ってどうやって作るの? さすがにアセンブラ経験なしでここで相談に答える馬鹿はいないだろ。ILだってまともに読めないだろうし。 ■ このスレッドは過去ログ倉庫に格納されています