[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/28 06:06 / Filesize : 263 KB / Number-of Response : 1036
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part139



1 名前:デフォルトの名無しさん mailto:sage [2018/08/05(日) 19:55:44.50 ID:tZmoj8I+.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/

89 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 22:43:06.20 ID:Qn4G0bqC.net]
畳みたくなるような長いクラスは書かない

90 名前:デフォルトの名無しさん [2018/08/19(日) 22:44:46.22 ID:WKvykaAV.net]
>>84
>>85
好きにしてってことか

メソッド囲んでるソース多かったから基本なのかと思ったけど
面倒だし囲まないことにする

91 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 23:10:34.65 ID:0oWhlzQ+.net]
全ての機能をFormに

92 名前:デフォルトの名無しさん mailto:sage [2018/08/19(日) 23:19:59.25 ID:hDKgqoRf.net]
俺はregionによる仕分け多用するけど一般的な習慣とまでは言えないね

でも、単純にプロパティ、メソッド、イベント(OnXxxx)、コンストラクタに分類するだけでも
少なくとも視覚的な見やすさはだいぶ違うと思うよ

MSDNライブラリのクラスメンバー一覧がそういう分類じゃなく単純にアルファベット順だったら
どうか想像すりゃ分かると思うけど

93 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 20:47:47.03 ID:4Ys3BH8f.net]
複数のメソッドをregionで囲むはまだ許せるが、くそ長いメソッドの一部をregionで囲って短く見せるのは許せない

94 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:12:28.08 ID:dwFWVIwC.net]
>くそ長いメソッドの一部をregionで囲って短く見せる
海外サイトでサンプル漁ってると時々見かけるな

95 名前:デフォルトの名無しさん [2018/08/20(月) 21:18:42.69 ID:7wKYHqTA.net]
まあアウトラインってスコープ単位で線引されるからね
regionは昔の機能と思っていいよ

96 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:21:04.27 ID:Uo4wU7xn.net]
メソッドはregionで囲まなくても普通に畳めるよww

97 名前:デフォルトの名無しさん [2018/08/20(月) 21:23:33.78 ID:7wKYHqTA.net]
>>92
畳めるけどメソッドをregionで囲ってるソースみること結構あるわ



98 名前:デフォルトの名無しさん [2018/08/20(月) 21:23:49.70 ID:7wKYHqTA.net]
ホント謎

99 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:41:03.34 ID:UWgl1tII.net]
メソッド単位で囲ってるのは俺も謎だと思ってた
昔は普通にたたむのできなくてその名残とかなのかもしかして普通にたためるの知らないのか

100 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:43:29.04 ID:/2kqdAhT.net]
メソッドで畳めないIDE使ってるとか?

101 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:45:48.75 ID:1JpQrvUt.net]
IEnumerable、IDisposable、IEquatableみたいな定型インターフェイスの実装は邪魔なんでregionで括ってるわ
あとToStringやらGetHashCodeのオーバーライドなんかも

102 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 21:50:55.75 ID:DUHqVJSw.net]
>>97
.NET Frameworkのライブラリと同じように作らなきゃいけないと勘違いしてた頃は俺もそれやってた
アプリと不特定多数向けのライブラリは作り方が違ってていい、アプリはなるべく絞り込んで作るのがよい、
ということを理解してからは無駄なコードが減って必要なくなった

103 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 22:10:27.90 ID:FTwuHoIr.net]
不特定多数向けのライブラリを作ってるのかもしれないだろ

104 名前:デフォルトの名無しさん mailto:sage [2018/08/20(月) 23:12:34.39 ID:4xbzQ56O.net]
IDisposableはusing使うために必須だからなあ

105 名前:デフォルトの名無しさん [2018/08/21(火) 00:18:54.40 ID:oo1eFPzK.net]
HttpClientみたいにsession繋ぎっぱなしが推奨されてるのにusing使う奴

106 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:23:49.00 ID:2/I2BB9Y.net]
>>101
なんでそのルールをセッション繋ぎっぱなしが推奨されないものにまで適用しなきゃいけないの?

107 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:27:03.72 ID:2ZNryZEm.net]
ここで聞くことでもないんだけど適当に意見くだせえ
仮に外部設計書・内部設計書・詳細設計書が必要として、
詳細設計書は別ファイルで作成するよりxmlドキュメントコメント使って生成したxmlファイル使った方がよっぽどいいよね?



108 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:40:44.14 ID:lLRe5osi.net]
>>103
ドキュメントコメントは内部設計だろ
詳細設計というのはソースコードを日本語に逐語翻訳したものであり、一般にはコーディングシートと同じもの
下請けの一番使えない奴に押し付けるのが一番

109 名前:デフォルトの名無しさん [2018/08/21(火) 00:46:11.78 ID:Fn3PsyHg.net]
>>102
日本語読めます?

110 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 00:50:51.67 ID:1ei+2zpw.net]
最初の設計がおかしかったからこんなことになった

using使えるような新しいライブラリを出してこないMSが悪い
pythonだったらpython的でないと言う理由で新しいライブラリが出てくる

111 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 01:07:05.30 ID:krr9M76P.net]
>>101
ファイルの利用が終わったのにすぐにファイルハンドルを解放しないとか不便でしょうが

112 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 01:46:45.25 ID:2ZNryZEm.net]
>>104
ドキュメントコメントは内部設計なの?
サイトによって言ってること違って混乱してる
内部設計書=詳細設計書と書いてるところもあれば、
内部設計書=複数の処理の流れ、詳細設計書=ドキュメントコメントってところもある

自然言語でコード書いた奴は見当違いで本来必要の無い何かって認識だった。会社と人によって違うのかな

113 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 02:00:13.53 ID:lLRe5osi.net]
>>108
詳細設計はCOBOL時代の名残りだ
パンチカードや80x24文字の画面でコーディングしてた頃はソースコードは純粋なアウトプットであり、
ソース上で試行錯誤したりソース眺めながらコミュニケーションしたりするなんていう発想は無かったの
プログラミングはタイピングの前に完了していなければならず、詳細設計を作成することこそが今でいうコーディング工程そのものだったんだよ
本来全く必要のないもの、でまさに正しいんだよ

114 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 02:01:33.41 ID:NrpzP/Hk.net]
>>106
HttpClientFactoryも知らないおじいちゃんこんにちは

115 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 07:18:27.76 ID:K3bJIWvH.net]
>>103
答えはNO
内部・詳細設計書はゴミのように不要どころか持ってると邪魔なものだけど客は金を出してくれる
ビジネスでやる以上金になるほうを選ぶのが当然

116 名前:デフォルトの名無しさん [2018/08/21(火) 09:21:19.00 ID:6+/Jo0uy.net]
設計書ネタはスレちがくね?

117 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 09:58:08.14 ID:eCXr2PsD.net]
質問者すらそう言ってるが
言及したがりのバカが沸いたからしゃーない



118 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 10:26:32.76 ID:UjHMgN47.net]
しかも最初の疑問点からずれた話題だけを掘り下げるという意味不明な状態

119 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:27:18.26 ID:DYb1gEuJ.net]
Win32API関数でのエラー処理について質問です

var DllFilePath = "hogehoge.dll";
handle = LoadLibrary(DllFilePath);
if (handle == IntPtr.Zero)
{
 throw new System.ComponentModel.Win32Exception();
}

↑のコードで例外をthrowするときに例外のMessageにDllFilePathの値を追加したいのですが

throw new System.ComponentModel.Win32Exception(DllFilePath)

とすると本来のエラーメッセージが上書きされてしまいます。

var DllFilePath = "hogehoge.dll";
try
{
 handle = LoadLibrary(DllFilePath);
 if (handle == IntPtr.Zero)
 {
  throw new System.ComponentModel.Win32Exception();
 }
}
catch(System.ComponentModel.Win32Exception e)
{
 throw new System.ComponentModel.Win32Exception($"{e.Message} \"{DllFileName}\"", e);
}

こうすれば期待通りの内容にできるのですがAPI呼び出しの度に例外処理を書くのは
コードが冗長になってしまうし何より面倒なのでうまいこと簡単に書けないか悩んでいます。
何かいい方法は無いですかね?


120 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:58:43.22 ID:GmRbaMy/.net]
>>115
Win32Exceptionを継承して使う

121 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:00:35.25 ID:Ua1FlSB5.net]
>>115
public class LoadLibraryFailedException : Win32Exception
{
  public LoadLibraryFailedException (string path)
  { DllPath = path; }

  public string DllPath {get; private set; }
  ...
}


122 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:32:10.34 ID:DYb1gEuJ.net]
Messageに情報を足すことばかりが頭にあって
情報を別のプロパティに持たせる発想がなかった…

こっちのほうがcatchする側で融通が利かせやすいし
クラスやプロパティの名前を調整すればLoadLibraryに限らず
他のAPI呼び出しにも汎用的に使えそうでいいですね

この方法で検討してみます。ありがとうございました

123 名前:デフォルトの名無しさん [2018/08/23(木) 11:52:17.79 ID:+a3jfYk1.net]
すんません初歩駅な質問なんですが
フォームアプリのコントロールに
ボリュームやスライダーのような可変データコントロールは無いのでしょうか?
似たのはNumericUpDownがありますが・・・
これの画像を差し替えてボリューム風にしろってことですか?

124 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 12:20:54.20 ID:Qdf2BjgW.net]
>>119
トラックバー

125 名前:デフォルトの名無しさん [2018/08/23(木) 12:40:46.09 ID:+a3jfYk1.net]
>>120
おお!「コモンコントロール」にも他カテゴリにも無いコントロールがあったのか!
完全に見落としてました
ところでこれの画像を差し替えて丸型回転ノブにすることはできるんでしょうか?
まだ勉強不足でよくわかってないのですが
Imageプロパティとか無いからできないかな?

126 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:36:36.72 ID:XFHRsDpy.net]
ノブに変えるのは
おお難しいんじゃあ〜

127 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:42:16.42 ID:OU0cRkrI.net]
初心者に回転ノブの実装は難しいと思う
ってか使いにくいだろ



128 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 13:58:21.08 ID:oqmXoghj.net]
>>121
画像だけで済まないでしょそれ
そんな形で回転するコントロールは無いので一から自作しないと
>>123
マウスホイール部分で動かすのならともかくドラッグで操作するものとか考えただけで頭痛くなる

129 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 14:11:46.80 ID:YLcqAqh8.net]
volatile キーワードの役割がどうしても理解できないので教えてください。

自分の考えでは、以下のようなプログラムを最適化ありでコンパイルして実行すると
while (loop) ; のループから抜け出すことができないから
volatile キーワードが役に立つのかと思ったのですが、
残念ながら(?)実際に試すと普通にループを抜け出せてしまいました。

class Program
{
  static bool loop = true;

  static void Main(string[] args)
  {
    new Thread(() =>
    {
      Thread.Sleep(1000);
      loop = false;
    }).Start();

    while (loop) ;

    Console.WriteLine("End");
  }
}

そもそも、volatile がある場合とない場合で動作が変わるコードを
ただの1つも作り出すことができていない状態なので、
何か volatile の役割を示すコードの例を示していただけると嬉しいです。
よろしくお願いします。


130 名前:デフォルトの名無しさん [2018/08/23(木) 15:15:56.49 ID:MTIo/8hT.net]
>>122-124
むむむ画像の差し替えだけじゃ回転ノブは難しいのか!
C#というのは在り物のコントロールをそのまま使って工夫するものなんですかね?

131 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:23:55.44 ID:7meTQdNO.net]
マジレスするとメッセージ捕まえて
自力で描画すれば可能なんだけど


132 名前:力に見会わないのでお勧めしない

webやWPF, UWPならグラ弄るの簡単
[]
[ここ壊れてます]

133 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 15:58:07.77 ID:yzuHUqjv.net]
労力かけてそんな使いにくいUI作る必要ないだろ

134 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 19:00:57.46 ID:4aOJVToK.net]
たぶん音量調整とかしたいんだろうけど
そんなui見かけないのは使いづらいからでは?

135 名前:デフォルトの名無しさん [2018/08/23(木) 19:45:13.80 ID:/L2wlbg3.net]
regionの適切な使い方って結局どうすんのがいいんだ?
独学だし人のあんま見たことないからよくわからん

136 名前:デフォルトの名無しさん [2018/08/23(木) 19:50:59.55 ID:Hj0kcImk.net]
折れ線グラフとか棒グラフとか
3Dで立体的に表示できる機能なんかない?
開いたら開始地点から現在の値のトコまで棒が伸びていくアニメーションとか
リッチ感だしたいんだけど

137 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 21:01:34.44 ID:IbEC1I+s.net]
GDI+よりWPFが簡単とはまったく思わんなあw

>>129
XPの時代はそういうUIが結構あった。

>>126
ボリュームの位置(値)を、例えば小さな丸で示す実装なら超簡単でしょう。



138 名前:デフォルトの名無しさん [2018/08/23(木) 23:07:37.52 ID:nqcPx5oZ.net]
自分の作ったプログラムをウェブで公開したいのですが、完全に独学のため、
リリース用のビルドをするにあたっての注意点がよくわかりません。

このウェブサイトにあるように、単純にリリースビルドすればそれでいいのでしょうか?
第5回 Windowsアプリケーションのデバッグ&リリース (5/5):連載簡単!Visual Studio .NET入門 - @IT
www.atmarkit.co.jp/ait/articles/0410/13/news100_5.html

また、リリースビルドした場合、デバッグ不足で予期しないエラーが発生した場合、何行目にエラーがあるとかそういう表示って出てこなくなるのですか?

139 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:19:35.02 ID:S0ZPdzES.net]
>>132
回転はどうするのwってのは置いておくとして超簡単って書くのなら方法示したほうがいいと思う
>>133
公開するのならビルドした.Netのバージョンを必ず明記すること
.Net以外の外部DLL等参照している場合はそれも書くこと
>何行目にエラーがあるとかそういう表示って出てこなくなるのですか?
はい

140 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:24:55.20 ID:AuVZlFM/.net]
>>134
PDBの設定によるやろ…

141 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:55:38.28 ID:OU0cRkrI.net]
>>133
pdbファイルも一緒に配布すればrelease版でも例外発生箇所を表示できる

142 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:57:41.73 ID:AuVZlFM/.net]
>>136
リリースビルド時のフルパスがPDBに含まれないようにするのってどうやるんだっけ?

143 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:17:32.21 ID:uCffaOwh.net]
>>137
[ビルド]-[出力]-[詳細設定]-[デバッグ情報]を「なし」に設定

144 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:41:58.39 ID:uu5lHyZK.net]
フォーマット指定の方法なんだけど
("id:{0}",変数)みたい0とかのインデックス指定なしに
記載する方法ってなかったっけ?

こんな感じ
("id:{}",変数)
あったような気がするのだが見つからない

145 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:05:28.79 ID:1zvoR5Nf.net]
>>139
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/tokens/interpolated

146 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:16:29.54 ID:srP6ovAZ.net]
>>139
文字列補完?
$"Id:{変数}"

147 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:23:14.01 ID:fKyaBZGN.net]
計算処理クラスは自動テスト実現のため一時変数以外のインスタンスを持たせない

という方針を聞いたんですけどC#に例えるとどういう事ですか?

独り派遣で聞く人もおらず困っています



148 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:53:09.08 ID:ucGkXF3f.net]
なぜその方針を作った

149 名前:、の人に直接聞かないの
理解せずに間違ったことやったら最終的に叱られるのは君じゃないの?w

こういう人が2chで「コミュニケーションスキルガー」とか被害妄想全開で吠えてるんだろうなあ
[]
[ここ壊れてます]

150 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:54:55.58 ID:/eex7TkL.net]
2chとかいつの時代だよ

151 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 13:47:23.02 ID:7bl9vxOR.net]
未来から来てる可能性だってあるじゃないか

152 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:00:43.60 ID:ILYVISJ2.net]
状態を持たせずに純粋関数にした方が
バグが減って保守やテストがしやすいってことじゃろ

Mathクラスみたいに

153 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:28:08.95 ID:cHge5Sdm.net]
メソッドを全部staticにしたらいいんじゃね
もちろんstaticな変数は持たない
utilクラスみたいなもんだと思えば

154 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:41:00.57 ID:qtcVVPQQ.net]
それやるならstatic classってのがc#にはあったような

155 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:06:07.87 ID:7htaPF/P.net]
メソッドやクラスをstaticにしたところで他のクラスのインスタンスへの依存は防げないだろ
計算処理クラスなんてものが生み出されるようなレベルの現場だと、
ヘタにstatic強制なんかしたらstaticフィールドに状態持たせるバカが増えて余計に酷い状況になりそう

156 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:54:49.70 ID:g1+rhs2E.net]
>>143
それ書いた人はもう居ないです
いつもイライラして椅子蹴ってくる正社員リーダーとは恐怖でこちらから話せません

157 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:56:51.04 ID:q0UJEScu.net]
Utilクラスってゴミ箱になりがちだから嫌いだわ。
計算処理クラスはなんとなく気持ちはわかるが。
delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの?
テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。



158 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:01:21.93 ID:g1+rhs2E.net]
>>149
処理をクラスにするって古い考えなのでしょうか

自分はDDD的な知識のクラスを構成するクラスも作りますが、そんなものは作らんのが流行りなのかと気になります

159 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:44:47.51 ID:h3eX92xO.net]
>>134
>>136
ありがとうございます。やってみます

160 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:20:46.35 ID:s18ZTF9u.net]
>>150
マジで底辺のリーダーってこんなんがほとんどなの?こええ

161 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:36:31.86 ID:n2aXOJxU.net]
staticなナントカUtilクラスはJavaドカが好むよねー
staticなのに内部でインフラ異存しまくっててキレそうになるよ

162 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:32:41.02 ID:KbP5R+D4.net]
失礼します。
ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?

163 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:36:20.82 ID:usF07bpd.net]
>>156
これのこと?
https://stackoverflow.com/questions/5120317/dynamic-anonymous-type-in-razor-causes-runtimebinderexception

164 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 00:04:54.82 ID:K7SavMc/.net]
>>157
はい。
.frameworkがpoorなのでサポート出来ない事が私には理解できません。
こちらのurlの記事では普通にプロパティで取得出来ているように見えますが…
architect-wat.hatenablog.jp/entry/20130501/1367415654

165 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:58:42.90 ID:uF3Ar+0r.net]
>>158
匿名型なんて使わなきゃいい

166 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:34:07.64 ID:ZJ6IWHAy.net]
c#アプリって簡単に逆コンパイルで簡単にソース見れちゃうじゃん?
例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?

167 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:41:36.20 ID:ajbZjNWE.net]
>>160
リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ



168 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:57:01.93 ID:Z58Bgt4H.net]
>>160
ハッシュ値使うねん

169 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:08:24.14 ID:6fvgv2wi.net]
>>162
ハッシュからAPIキーは復元できないでしょ

170 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:21:29.85 ID:nj06+sqx.net]
>>160
環境変数

171 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 20:50:49.58 ID:J4BiRy9W.net]
200週くらい周回遅れの話題だ

172 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:51:49.34 ID:uGtRYhlb.net]
>>163
間接的に別なのから取得するとか

173 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:53:27.00 ID:Y3DnwOBx.net]
>>165
結論はどうなってるの?
どうしようもない?

174 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 21:53:40.13 ID:Y3DnwOBx.net]
>>166
どういうこと?

175 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:06:38.21 ID:mvt+Dc+2.net]
>>159
問題はEFで匿名型が簡単に作られてしまうのが問題ですね。
結局expandoobjectに変換するか、ViewModelを毎回作るしか無さそうですね。

176 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:44:13.36 ID:O9adGcKd.net]
>>167
要件による
サーバーからもらうとか

177 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:36:40.81 ID:KYhaaDP0.net]
>>161
まあそうだけど

>>164
ふむふむ

>>170
まあそれだね
てかそれやってるんだけど超めんどい



178 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:41:52.49 ID:d3emHXQQ.net]
>>170
サーバーから貰うときの認証は?

179 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:45:24.17 ID:MAg8NxfR.net]
>>172
認証のパスワードなどの手続を登録した人に別途配布

180 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:48:09.71 ID:mLZLsxB6.net]
サーバーから受け取るようにしたとしてもクライアントが丸見えなら同じ方法でサーバーからキー抜けるだろ
ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする
そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする
漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ

181 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:55:18.75 ID:IHY0+SV3.net]
どうでもいいけど、もともとの質問の趣旨は
ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの?

それは無理、で終わりだと思うけど。

182 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:56:47.03 ID:g9QDbTAC.net]
APIキーって5chのAPIみたいなの想像してたけど違うの?
それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど

183 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:57:13.81 ID:mLZLsxB6.net]
>>175
APIキーを抜くくらいならネイティブでも難しくないよ

184 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:13:33.45 ID:mLZLsxB6.net]
>>176
それで困るのは5chではなくブラウザの開発者だろ?
5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、
そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。
ユーザー単位で

185 名前:払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。 []
[ここ壊れてます]

186 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:14:28.64 ID:fHWcXfSA.net]
>>178
なるほど

187 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 13:22:20.16 ID:KYhaaDP0.net]
ソースコード丸見えだから、APIキーがどこにあるかわかるよね

そうやって海賊版作れてしまうわけだ



188 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 14:46:35.94 ID:VBsyc88B.net]
流石にAPIキーを普通に文字列で書くアホはnativeでも居ないだろ。
難読化する。
ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。

カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。

ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。

189 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:44:19.57 ID:Aux3ZmsD.net]
nativeと同程度の隠匿で良いならそこだけnativeにすれば良いだけやん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<263KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef