C#, C♯, C#相談室 Part82at TECH
C#, C♯, C#相談室 Part82 - 暇つぶし2ch2:デフォルトの名無しさん
13/12/11 21:14:18.72 .net
墜つ

3:デフォルトの名無しさん
13/12/12 08:50:58.56 .net
DoEventsをawait Taskで描き直したいのですが

for(int t = 0; t < 1000; ++t){
//なんか処理
//Application.DoEvents();
await Task.FromResult<object>(null); //(1)
await Task.Delay(0); //(2)
await Task.Delay(1); //(3)
}

(1)と(2)はメッセージループに戻ることなく、関数が継続してしまいます。
(3)だとメッセージループに戻って、他のイベントを処理してから
戻ってきますが、他のイベントがない場合でも1ms戻って来ないです。

DoEventsのように、イベントがなければすぐ戻ってくる方法はありませんか?

BeginInvokeとフェーズ管理を自分でやればできることは分かっていますが
上記と同じくらい簡潔に書ける方法はありませんか?

4:デフォルトの名無しさん
13/12/12 10:11:28.72 .net
>DoEvents
ブビ厨脳のお前には無理

5:デフォルトの名無しさん
13/12/12 11:19:12.16 .net
根本的にTaskの仕組みを理解してないな
思い込みを捨てて基礎からやったほうが良いぞ

6:デフォルトの名無しさん
13/12/12 12:17:55.39 .net
//なんか処理 はListView更新とかがメインなので
タスクのスレッドプールでは実行できません。
だから、非同期メソッドの構文をウェイトを挟むのに使いたいです。
非同期メソッド以外にも、簡潔に書ける方法があったら教えてください。

7:デフォルトの名無しさん
13/12/12 12:23:40.05 .net
簡潔に書ける方法がDoEventsだろ間抜け

8:デフォルトの名無しさん
13/12/12 12:36:20.88 .net
DoEventsを使うなって聞き齧ったか何かで書き直そうとしてるんだろうな
仮にTaskで出来たとしても、DoEventsと同じ動作をするなら意味無いぜ

9:デフォルトの名無しさん
13/12/12 14:43:09.93 .net
やってることはControl.BeginInvoke使うのと一緒だが、
Taskを使うならスケジューラーを交互に換えるとそれっぽくなる。

var task = Task.Factory.StartNew<int>(() => { Thread.Sleep(1000); return 10000; });
for (int i = 0; i < 10; i++) {
 task = task
  .ContinueWith<int>((t) => { textBox1.Text = t.Result.ToString(); return t.Result; }, // 表示処理
    TaskScheduler.FromCurrentSynchronizationContext())
  .ContinueWith<int>((t) => { Thread.Sleep(1000); return t.Result + 1; }, // 時間のかかる処理
    TaskScheduler.Default);
}

10:デフォルトの名無しさん
13/12/12 17:35:22.45 .net
FromCurrentSynchronizationContextというのがあるんですね。
スレッドプールでしか実行できないと思っていました。
試してみます。ありがとうございました。

11:デフォルトの名無しさん
13/12/12 19:07:36.49 .net
TcpClientででかいデータを一発でやりとりすんのってどうやってやるんですか?
別に一発じゃなくてもいいですが、できれば一発がいいです。

12:デフォルトの名無しさん
13/12/12 19:08:44.22 .net
>>11
お前すぐ死ねよカス

13:デフォルトの名無しさん
13/12/12 19:09:22.07 .net
そんな方法はありません

14:デフォルトの名無しさん
13/12/12 21:58:46.32 .net
ロジックのスレッドからUIスレッド操作はデリゲート使わないと出来ないこともわからないのかブビ厨はwww
マジでVBとかこの世から消えて欲しいんだよね、なんなのあれ?闇のソナタ?ひと目見るだけで目が腐るわwww

15:デフォルトの名無しさん
13/12/13 00:16:56.41 .net
ブビ厨にスレッドをさわらせるとロクなことがない

16:デフォルトの名無しさん
13/12/15 11:06:11.03 .net
(なんでみんなYで始まるアレを教えてあげないんだろう・・・?)

17:デフォルトの名無しさん
13/12/15 17:37:50.06 .net
YANMARはこの際関係ないと思うが

18:デフォルトの名無しさん
13/12/15 17:50:09.01 .net
YAZAWAだろ

19:デフォルトの名無しさん
13/12/15 19:28:45.96 .net
YOSHIDAが最強だよね

20:デフォルトの名無しさん
13/12/15 19:29:46.85 .net
誰だよ

21:デフォルトの名無しさん
13/12/16 14:11:55.08 .net
private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
  HtmlElementCollection hec = wb.Document.GetElementsByTagName("a");
  foreach (HtmlElement he in hec)
  {
// ~ 略 ~ 一定のクリック対象の条件を満たした場合
    InvokeMember("click"); ・・・①
  }
}

グーグルで検索を行い表示された検索結果のうち
特定サイトをクリックすると、 ①を実行した直後に
wb_DocumentCompleted イベントが発生しなくなってしまいます。

クリックしたサイトが表示されるページが大半なのに
なぜ特定サイト ( suumo ・ 2ch)の場合だけ、ページが表示されてもDocumentCompleteが
発生しなくなるか理由が分かりません。いった何が原因なのでしょうか?

22:デフォルトの名無しさん
13/12/17 23:03:31.55 .net
いろんなアプリを使ってるとたまに
OpenFileDialogのような外観と操作性のフォルダ選択画面があるんですが
.NETの標準ではそういう物は無いですか?

23:デフォルトの名無しさん
13/12/17 23:10:04.12 .net
APICodePackに入ってる奴か?

24:デフォルトの名無しさん
13/12/17 23:18:30.98 .net
コピペプログラマ卒業したいのにWin32APIだとコピペになっちゃう
やっぱC++覚えないと駄目なんか・・・

25:デフォルトの名無しさん
13/12/19 00:14:10.61 .net
>>24
windows7 api codepackはMSご謹製のライブラリーであってwin32APIとは別物ですよ
nugetにてcodepackを検索すれば出てくるのでインストールは簡単です
使い方はぐぐってね

26:デフォルトの名無しさん
13/12/19 09:30:12.03 .net
自作C++ライブラリを呼ぶとかならアレだけど
Win32APIをDllImportするなんて約束事を幾つか覚えれば簡単でしょう

27:デフォルトの名無しさん
13/12/19 19:54:24.77 .net
Comとか文字列とか含んだ構造体とかは結構わからなくなる

28:デフォルトの名無しさん
13/12/19 22:10:34.67 .net
>>23
まさにこれです
ありがとうございました

29:デフォルトの名無しさん
13/12/19 22:18:12.89 .net
いえいえ

30:デフォルトの名無しさん
13/12/20 18:45:04.78 .net
拡張メソッドだとオブジェクトがnullか判定できちゃうのな
例えば

public static bool IsNull( this object obj )
{
 return obj == null;
}

-------

Object o = null;
bool fNull = o.IsNull(); // ぬるりかと思いきやtrue

キモいw
キモいけど便利かも

31:デフォルトの名無しさん
13/12/20 18:46:46.50 .net
へー、勉強になった
多分役に立たないけど

32:デフォルトの名無しさん
13/12/20 22:52:55.49 .net
string.IsNulOrrEmptyと一緒かな?

33:デフォルトの名無しさん
13/12/21 04:41:57.99 .net
>>32=バカ
見た目上nullに対して(null).method()
が実行できてしまうことの
気持ち悪さを言っているというのに

34:デフォルトの名無しさん
13/12/21 11:37:51.81 .net
C#初心者用だと答えが返ってこなかったのでここで質問します

URLリンク(keyboardmousehooks.codeplex.com)
ここのKeyboardHook Classを利用してフックは出来たんですが、メッセージの書き換え方がわからないんです
どうすればいいか教えてください
それと、何故かEnterキーを一度しか押してないのにメッセージボックスを開くとキーが2回押されてるようでメッセージボックスがすぐ閉じてしまいます
これも原因がわからないんのでアドバイスお願いします

35:デフォルトの名無しさん
13/12/21 11:42:57.74 .net
663 名前:デフォルトの名無しさん[sage] 投稿日:2013/12/20(金) 22:02:32.23
見てないけどLLの方なら書き換えはできないよ
握りつぶして代わりにSendInputとかで改めて送信

帰って来てますので>>34はスルーでお願いします

36:デフォルトの名無しさん
13/12/25 10:05:10.28 .net
ちょっとオブジェクトがどうなるか自信が無いので教えてください
C# 4.0、Framework 4.0で作成してます
下の様なTaskを使った処理を作ろうとしてるのですが、
StartNewでタスクが作成された後、StartTask関数は抜けますが
その時に自動変数なので変数としてのClientは無効になると思うのですが
タスクに渡された


37:TcpClientのインスタンス自体は タスク無いで保持されてるので消滅しないと思って間違いないでしょうか? private void StartTask() {  var Client = Listener.AcceptTcpClient();  Task.Factory.StartNew((ClientSck) => {   while(!TaskCancelation.IsCancellationRequested) {    // ソケットを使用した通信処理   }  }, Client, TaskCancelation.Token); }



38:デフォルトの名無しさん
13/12/25 10:10:27.20 .net
うん

39:デフォルトの名無しさん
13/12/25 10:39:28.46 .net
ご変換してますね
タスク無い、じゃなくて、タスク内、ですね

>>37
ありがとうございます
これでやってみます

40:デフォルトの名無しさん
13/12/25 16:10:25.63 .net
RichTextBoxの選択範囲について教えてください
今、私はVS2012のC#を使ってエディタを作成しているのですが
選択範囲のテキストをドロップドラッグするためにTextBoxではなくRichTextBoxを使って作成しています
そして質問したい事なのですが
RichTextBox内のテキストを選択すると一番最後に空文字の様なものが入ったり
4行の文字列があるとするとその行末に選択できる空白(消すと改行が消える)があったりします
とりあえず改行をマウスで選択出来てしまいます
それを無くしたいのですが
どの様にしたら良いのでしょうか
具体的には
何のイベントにどの様な事を記述すれば良いのでしょうか

41:デフォルトの名無しさん
13/12/25 17:02:24.57 .net
改行選択できないエディタ見たことないんだが

42:デフォルトの名無しさん
13/12/25 17:39:05.54 .net
「リッチテキスト 改行文字」でググれ

43:デフォルトの名無しさん
13/12/25 18:32:20.55 .net
>>40
さくらエディタ見たいなヤツを作りたいです
>>41
ググって見ましたが分かりません

44:デフォルトの名無しさん
13/12/25 19:38:18.36 .net
>>42
さくらのソース公開されてるだろう

45:デフォルトの名無しさん
13/12/25 19:50:43.24 .net
改行はたぶん>>39の手に負えない内容だと思う
それって別にエディタの動作として再優先な機能じゃないんだろ?
とりあえず放置してほかの部分作っとくのがいいと思う

46:デフォルトの名無しさん
13/12/25 19:58:37.27 .net
>>43
C#しかやった事がないもので
>>44
メモ帳としての基本機能はつけ終わりました

47:デフォルトの名無しさん
13/12/25 20:03:37.03 .net
>>45
notepad.exe起動してメニュー見てみ。地味に多いぞ。全部パクるんだ

48:デフォルトの名無しさん
13/12/26 03:13:51.22 .net
今時エディタなんて誰が喜ぶんだよ・・・

49:デフォルトの名無しさん
13/12/26 03:26:55.11 .net
おまえらいつも喜んでんじゃん

50:デフォルトの名無しさん
13/12/26 21:12:31.39 .net
てす

51:デフォルトの名無しさん
13/12/29 22:19:12.60 .net
PureC#のエディタってあるの?

52:デフォルトの名無しさん
13/12/29 22:35:18.76 .net
C#ってVC++より生産性が高いと評判ですが
URLリンク(static.sourceforge.jp)
見たいなUIも簡単に作れるんですか?
もしくは最初っからあります?

53:デフォルトの名無しさん
13/12/29 22:38:55.47 .net
探せばあるんじゃね

54:デフォルトの名無しさん
13/12/29 22:38:57.05 .net
うん

55:デフォルトの名無しさん
13/12/29 22:56:37.16 .net
こういう質問する奴には簡単には作れないよ
生産性が高いっていうのは、わかってる奴が作ると手間が掛からないってだけ

56:デフォルトの名無しさん
13/12/29 22:57:41.00 .net
ほなら、VC++だっていっしょじゃん

57:デフォルトの名無しさん
13/12/29 22:58:23.67 .net
>>54
>わかってる奴が作ると手間が掛からないってだけ
激しく同意

58:デフォルトの名無しさん
13/12/29 23:01:47.69 .net
>>55
そうよ
夢がぶっ壊れてよかったね

59:デフォルトの名無しさん
13/12/29 23:09:59.10 .net
>>51
大して難しくないだろ
面倒なだけ。
やれば終わる仕事だよ

60:デフォルトの名無しさん
13/12/30 00:04:21.86 .net
>>51
ふらっとにもきた?

>Windows API Code Packを使うと、割と簡単にできる

だって

61:デフォルトの名無しさん
13/12/30 00:25:45.89 .net
でも.NETはフレームワークってほど便利じゃないんだよね
あくまでもVC++と比較して.NETは生産性が高いってだけで
.NETが用意してくれていない(UIに関してはほとんど)ことを実装しようと思うと言語仕様を理解してる前提で言えば手間はかわらないんじゃない?
RailsやjQueryみたいなチートフレームワークが.NETでも出てくればいいね

62:デフォルトの名無しさん
13/12/30 00:31:11.61 .net
そういう意味のフレームワークならASP.NET MVCがある
評判上々でかなり上手くいってるぞ

63:デフォルトの名無しさん
13/12/30 00:58:38.32 .net
Threadクラス使って別スレッドで結構長い時間がかかるループ処理をしているんだけど、
自分でスレッドを強制終了したいためこういうコードにしたのよ。
while(!AbortRequest)
{

~省略~
}
でスレッド終了したいときにメインスレッドからAbortRequestをTrueにして抜けるようにしたんだけど
なぜだかわからないけどwhile文の最後までいかず途中で終了してしまうのよ。ファイル書き込みも途中で終わってしまう
せめてファイル書き込みを終わらせてから終了させたいんだけど、どういうふうに対策したらいいの?
あとなんでこんなことがおきるの?

64:デフォルトの名無しさん
13/12/30 01:05:31.01 .net
それだけじゃどの「?」にも答えられませんわ

65:デフォルトの名無しさん
13/12/30 01:09:48.48 .net
変な最適化くらってんじゃないの

66:デフォルトの名無しさん
13/12/30 01:17:39.34 .net
>>62が変なことをしているから。
バックグラウンドスレッドに設定してメインスレッドを終了させているとか、
Thread.AbortやInterruptを呼び出しているとか、
サブスレッドが使用するリソースを破棄して例外が出ているとか。
何もしなければwhile条件以外で終わるはずがない。

67:デフォルトの名無しさん
13/12/30 01:31:41.32 .net
あきらかに.NETからプログラミングを始めましたって感じのコードだなw

68:デフォルトの名無しさん
13/12/30 01:44:39.57 .net
冷やし中華でしたか。

69:デフォルトの名無しさん
13/12/30 02:07:50.89 .net
IsBackground==trueでは?
バックグラウンド スレッドは、プロセスの終了を回避しないので

70:デフォルトの名無しさん
13/12/30 03:40:32.46 .net
つーか単にそれのインスタンスをどこも持ってなくてGC回収食らってんじゃないの

71:デフォルトの名無しさん
13/12/30 04:41:20.48 .net
資源回収でしたか。

72:デフォルトの名無しさん
13/12/30 04:47:27.30 .net
ないない

73:デフォルトの名無しさん
13/12/30 05:24:38.13 .net
岡村さんでしたか。

74:デフォルトの名無しさん
13/12/30 07:15:41.55 .net
>>69はバカ

75:18
13/12/30 09:04:41.13 .net
>>69
この発想はなかったわ。
こんな奴が近くにいなくてよかった~ (w

76:デフォルトの名無しさん
13/12/30 12:42:41.17 .net
ふらっとにFormClosingでAbort呼んでといった質問があったので同一人物だろう
原因もきっとそれだ

77:デフォルトの名無しさん
13/12/30 13:14:45.49 .net
ふらっとスレ立て遅れてるからこっち来たのか

78:デフォルトの名無しさん
13/12/30 13:30:40.23 .net
たったお~
ふらっとVisual C#,C♯,C#(初心者用) Part110
スレリンク(tech板)l50

79:62
13/12/30 14:26:29.48 .net
>>75
同一人物だけど、Abortは呼ばないようにしたんだけどうまくいかない
ふらっとがたったのでそっちいきます

80:デフォルトの名無しさん
13/12/30 17:34:40.23 .net
やっぱMSの人間って頭わるいんでしょうね
こんな独善的な言語、時間の膨大な浪費になるところでした。
で、脱MSへのトリガーともなりました。
ちかれた。。。

81:デフォルトの名無しさん
13/12/30 17:56:16.58 .net
おめでとう
君は今邪悪なソフトウェアの呪縛を逃れたのだ
次に君がすべきことはFSFへの帰依である

82:デフォルトの名無しさん
13/12/30 18:05:19.84 .net
あ、C#じゃなくて .NETか
こりゃ失敬

83:デフォルトの名無しさん
13/12/30 19:21:42.10 .net
TreeViewコントロールを貼ったフォームを用意して
Loadイベントの中で
Process.GetProcesses()を使ってウィンドウを持つ全プロセスを列挙し
取得した各プロセスのトップレベルウィンドウのハンドル値をテキストにしてTreeViewのノードを追加し
その後Win32APIのEnumChildWindowsを使用して
取得済みの全トップレベルウィンドウの子ウィンドウを列挙して各ウィンドウノードの子ノードとして追加しようとしているのですが、
子ウィンドウの列挙が最初のトップレベルウィンドウしか行われないまま終わってしまいます。
しかし、ステップ実行で動きを追うと、すべての列挙が正常に行われます。
どうしたらちゃんと列挙できるんでしょうか?

VisualStudioは2010、フレームワークはVer.4.0です

84:デフォルトの名無しさん
13/12/30 19:26:22.12 .net
それだけではなんとも
EnumChildWindowsに渡すデリゲートをGC.KeepAliveなりフィールドに置くなりでインスタンス維持してない可能性とかぐらいか

85:82
13/12/30 20:01:33.40 .net
すいません、動かしたコードを載せます。

public class Win32API {
  public delegate bool WndEnumProc(IntPtr hWnd, IntPtr lParam);

  [DllImport("user32.dll")]
  private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

  [DllImport("user32.dll")]
  public static extern bool EnumChildWindows(IntPtr hWndParent, WndEnumProc lpEnumFunc, IntPtr lParam);

  [DllImport("user32.dll")]
  public static extern IntPtr GetParent(IntPtr hWnd);

  public static string GetWindowText(IntPtr hWnd) {
    var Buf = new StringBuilder(MAX_PATH);
    GetWindowText(hWnd, Buf, Buf.Capacity);
    return Buf.ToString();
  }
}

86:82
13/12/30 20:02:04.50 .net
public partial class MainForm : Form {
  private Win32API.WndEnumProc CallbackFunc;
  private GCHandle EnumParam;
  private void Form_Load(object sender, EventArgs e) {
    CallbackFunc = new Win32API.WndEnumProc(MainForm.EnumChildProc);
    EnumParam = GCHandle.Alloc(WindowTree);
    EnumWindows();
  }
  private void Form_Closing(object sender, FormClosingEventArgs e) {
    if(EnumParam != null && EnumParam.IsAllocated) {
      EnumParam.Free();
    }
  }
  private void EnumWindows() {
    foreach(var Proc in System.Diagnostics.Process.GetProcesses()) {
      if(Proc.MainWindowHandle != IntPtr.Zero) {
        WindowTree.AddNode(IntPtr.Zero, Proc.MainWindowHandle, Proc.MainWindowTitle);
      }
    }
    foreach(WindowTreeNode Node in WindowTree.Nodes) {
      Win32API.EnumChildWindows(Node.WindowHandle, CallbackFunc, GCHandle.ToIntPtr(EnumParam));
    }
  }
  private static bool EnumChildProc(IntPtr hWnd, IntPtr lParam) {
    var ParentHandle = Win32API.GetParent(hWnd);
    var TreeView = ((GCHandle)lParam).Target as WindowTreeView;
    TreeView.AddNode(ParentHandle, hWnd, Win32API.GetWindowText(hWnd));
    return true;
  }
}

87:82
13/12/30 20:04:47.41 .net
フォームのコンストラクタはデフォルトのままなので省略してます。
EnumChildWindowsを呼び出してるforeach部分をtry~catchしてみたりもしましたが
特に例外は返ってきませんでした

AddNodeはメソッド内でハンドル値を元に子ノードを追加すべきノードを検索して子ノードを追加するメソッドです

88:デフォルトの名無しさん
13/12/30 20:11:00.14 .net
EnumChildProcでTrace.WriteLineやってみてちゃんと出力はされてる?

89:デフォルトの名無しさん
13/12/30 20:40:49.18 .net
コールバック内でTrace.WriteLineしてみましたが
1つ目のトップレベルウィンドウの分の列挙分は出力されましたが、
その後は出力されませんでした。
デバッグでステップ実行するとやはり全部出力されます。

90:デフォルトの名無しさん
13/12/30 20:49:54.01 .net
exeで実行しプロセスにアタッチでデバッグするとどうなる?

91:デフォルトの名無しさん
13/12/30 21:55:40.48 .net
なんでEnumChildProcだけstaticなんだよw

92:デフォルトの名無しさん
13/12/31 17:10:43.19 .net
以前、C#でWindowsAPI使う時にコールバック関数の使い方調


93:べたことあるが その時に見つけたサイトで、EnumWindowsを使って例を書いてたが そこではコールバック関数をstaticにしてあったな 同じようなの見たんじゃないかな?



94:デフォルトの名無しさん
13/12/31 17:32:03.15 .net
MSDNのGCHandleのサンプルをベースにしたんだろ
EnumChildWindowsは同期型のコールバックだから、
あんまり問題は出ないはずだけどね

95:デフォルトの名無しさん
14/01/04 15:20:03.85 .net
VisualC# 2010で作成したソリューションファイルを
Visual Studio 2013 for Windows Desktopのものに変換するにはどうすればいいでしょうか?

96:デフォルトの名無しさん
14/01/04 15:20:50.92 .net
ダブルクリック

97: 忍法帖【Lv=40,xxxPT】(1+0:5)
14/01/08 21:00:44.99 .net
C#ってもうオワコンなの?

98:デフォルトの名無しさん
14/01/08 21:39:09.46 .net
オワコンだよ!

99:デフォルトの名無しさん
14/01/09 21:01:01.73 .net
ロボコンだよ!

100:デフォルトの名無しさん
14/01/09 21:02:20.28 .net
2chがオワコン

101:デフォルトの名無しさん
14/01/09 21:14:54.93 .net
終わってんのはおまえら

102:デフォルトの名無しさん
14/01/09 22:44:14.14 .net
まぁ、人類が終わってルナーと感じる事は最近頓にある

103:デフォルトの名無しさん
14/01/10 06:52:11.62 .net
そろそろ次のステージに進化しないとな

104:デフォルトの名無しさん
14/01/10 12:08:42.43 .net
次はC##かな

105:デフォルトの名無しさん
14/01/10 12:12:30.16 .net
CX(シー ダブルシャープ)
でお願いします

106:デフォルトの名無しさん
14/01/10 21:52:33.77 .net
C丼

107:デフォルトの名無しさん
14/01/10 21:56:17.10 .net
Cシャープ(音楽記号)

108:デフォルトの名無しさん
14/01/10 21:59:54.37 .net
>>104
気に入った!

109:デフォルトの名無しさん
14/01/10 22:00:37.44 .net
C囲

110:デフォルトの名無しさん
14/01/11 12:49:42.76 .net
C#++

111:18
14/01/11 13:12:51.08 .net
D♭

112:デフォルトの名無しさん
14/01/13 09:52:12.05 .net
まあ、こんなのが面白いんだから、終わってるな

113:デフォルトの名無しさん
14/01/13 10:15:21.49 .net
冬休みだからしょうがない

114:デフォルトの名無しさん
14/01/13 13:48:23.13 .net
冬休みは5日までじゃね?

115:デフォルトの名無しさん
14/01/13 14:07:12.23 .net
C??

116:デフォルトの名無しさん
14/01/13 14:07:53.44 .net
あ、UNICODE出ないのか
プログラム板なのに

117:デフォルトの名無しさん
14/01/14 11:01:41.85 .net
プログラム板なのに下らないカキコしてんじゃねー

118:デフォルトの名無しさん
14/01/18 03:43:12.59 .net
ユニコード=ウイルス
使用例:もっと強力なウイルスありませんか?

119:デフォルトの名無しさん
14/01/18 05:07:10.51 .net
強力なユニコードありませんか?じゃね。

120:デフォルトの名無しさん
14/01/18 09:20:08.66 .net
超漢字のサポートはまだですか?

121:デフォルトの名無しさん
14/01/19 17:13:49.27 .net
dataGridViewを使っています。
セルのタイプがDataGridViewComboBoxCellだったらという条件で処理を分岐させようと考えていますが、条件の書き方が分かりません。

if (dataGridView1.Columns[n].CellType.Name ==

ここまでは分かっていて、左辺の値はDataGridViewComboBoxCellが取れているのですが
右辺を固定文字列以外の形式で表現する方法は無いでしょうか。

122:デフォルトの名無しさん
14/01/19 17:35:18.46 .net
Columns[n] is DataGridViewComboBoxColumn
じゃあかんの? 行ごとにセルの型が違うとか?

123:デフォルトの名無しさん
14/01/19 21:46:25.32 .net
これでいけるんじゃね

if (dataGridView1.Columns[n].GetType() == typeof(DataGridViewComboBoxColumn))
{
  処理
}

124:デフォルトの名無しさん
14/01/21 13:26:36.20 .net
抽象クラスAで、publicな実装済みメソッドbのほか、protectedな抽象メソッドaを定義しました。
この実装済みメソッドbでは、 抽象メソッドaを呼び出すコードを書きます。

そして派生クラスでは、この 抽象メソッドaの実装のみします。

今、この派生クラスを実体化し、publicな 実装済みメソッドbを呼び出すと、 実装されたメソッドaが機能するでしょうか。

基底クラスから派生クラスのメンバを呼び出しているように見えるので、大丈夫なのかなと。

お願いいたします

125:デフォルトの名無しさん
14/01/21 14:58:59.77 .net
ゴミ

126:デフォルトの名無しさん
14/01/21 18:24:08.70 .net
カス

127:デフォルトの名無しさん
14/01/21 18:28:06.83 .net
つーかテストコード書いてみりゃわかることでしょうが。
そもそも機能しなかったとしたらメソッドbはいったい何を呼ぶのか

128:デフォルトの名無しさん
14/01/21 22:35:41.60 .net
>>122
Template Methodでぐぐってみな

129:122
14/01/22 09:53:25.02 .net
レス頂きありがとうございます!

>>125
そうですかできますか!
今日、開発環境(VS2010)をインストールしおわったので、いよいよ試してみたいと思います。

>>126
まさにそれです。なんかわかってもらえた感じがあって嬉しい。

130:デフォルトの名無しさん
14/01/22 19:37:16.04 .net
>>125-126
無事、成功しました。うまくできました!
ありがとうございます。

131:デフォルトの名無しさん
14/01/23 11:11:58.30 .net
C#のWindows アプリケーションにて、
System.Data.OleDb.OleDbConnection クラスを使い、
ローカルディスク上のmdbファイルに接続する場合、
時間経過でタイムアウトが起こることはあり得ますか?

下記の様な接続文字列を用いて接続することを想定しています。ODBCは使いません。
Connection.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=ファイル名;"

また、タイマーコントロールやスレッドなどを使わず、
OleDbConnectionやmdbの機能だけで
故意にタイムアウトを起こすことは出来ますか?
(接続プーリングのことではなく、接続そのものをタイムアウトで自動切断させる)
もし有ればその方法をお教え願えたらと思います。

132:129
14/01/23 11:24:41.62 .net
申し訳ありません。
説明不足でしたが、上記のタイムアウトはOpenメソッドでのタイムアウト
(ConnectionTimeoutプロパティ)ではなく、
接続確立後にアイドル時間が一定以上経過した後のタイムアウトを想定しています。

アプリケーションを起動して数十分や数時間放置したあと、タイムアウトが起きるか?
もし起きるならその条件は?という質問です。

もしよろしければお教えいただけると幸いです。

133:デフォルトの名無しさん
14/01/23 11:58:07.24 .net
usingでリソース管理する

134:デフォルトの名無しさん
14/01/23 14:51:37.13 .net
mdbに接続後のアイドル時間でタイムアウトってあるのかい?

135:デフォルトの名無しさん
14/01/23 20:53:56.85 .net
どうでもいい話だけど、ミュータブルなクラスのコンストラクタに関して、

(1) なるべく多くのオーバーロードを用意する。

(2) 名前付き引数を使う。

(3) どうせオブジェクト初期化子が使えるんだから、必要最小限の引数を取るものを1つだけ用意する。

この3つの方針でよく迷うんだけど皆さんはどう?

136:デフォルトの名無しさん
14/01/23 21:03:27.92 .net
(4) オプション引数を使う

137:デフォルトの名無しさん
14/01/23 21:14:07.63 .net
ああ、名前付き引数ってのは呼び出す側から見た時の呼び方で
オプション引数って書いた方がよかったか。

まあ同じことだと思うんだけど。

138:デフォルトの名無しさん
14/01/23 21:21:24.50 .net
違います

139:デフォルトの名無しさん
14/01/23 21:25:57.31 .net
馬鹿っぽい反応だね

140:デフォルトの名無しさん
14/01/23 21:48:23.47 .net
PythonとかRubyみたいなLLから来た子だろ
C#では全然違う

141:デフォルトの名無しさん
14/01/23 22:37:35.82 .net
確かに厳密に言えば違うか。

名前付き引数なんて省略可能な引数使って定義されたメソッドを呼び出す時以外に
使いどころがないとは思うけど

142:デフォルトの名無しさん
14/01/24 00:03:45.96 .net
可哀相な子がいるな
誰か彼の魂を開放してやりなさい

143:129
14/01/24 00:28:54.14 .net
厳密に言わなくても全く別物ですがね
知識不足を指摘されてみっともなくいつまでも言い訳して居座ってるんじゃないよ
邪魔だ

144:デフォルトの名無しさん
14/01/24 00:34:00.84 .net
おぉ、神よ。どうか、129の魂が天に召されんことを

145:デフォルトの名無しさん
14/01/24 00:38:30.10 .net
>>141
俺にとってはお前みたいな奴こそ邪魔。
幼稚くんに言っても始ま�


146:轤ネいが、下らない揚げ足取りの前に建設的なことの1つも言ってみろバカ。



147:デフォルトの名無しさん
14/01/24 00:40:46.93 .net
主観的視点で邪魔と切り捨てる慧眼はさすが幼稚としか言いようがない

ん?その観点だと幼稚は2人いるみたいだな

148:デフォルトの名無しさん
14/01/24 00:43:14.12 .net
それが主観に過ぎないことの自覚があるのとないのでは違うと思うんだけどね。
って中学生じみた話だな

149:デフォルトの名無しさん
14/01/24 08:12:48.96 .net
ここまで幼稚

150:デフォルトの名無しさん
14/01/24 11:12:08.34 .net
イミュータブルなクラスにもオブジェクト初期化子が使えたらいいなと思うこの頃

151:デフォルトの名無しさん
14/01/24 15:56:37.27 .net
>>147
なにそれ、初めてきいた
免疫と関係するものですか

152:デフォルトの名無しさん
14/01/24 17:30:12.04 .net
MSは既存の用語があるのにいちいち新語・無意味な新仕様使うから調べる手間が増える

153:デフォルトの名無しさん
14/01/24 18:09:51.28 .net
おじいちゃんには大変ですよね

154:デフォルトの名無しさん
14/01/24 18:20:04.27 .net
>>150
若い奴が貴重な時間を浪費する方が遥かに不憫だ、と普通は思うけどな

155:デフォルトの名無しさん
14/01/24 19:28:45.72 .net
イミュータブルはMS語じゃないだろ

156:デフォルトの名無しさん
14/01/24 20:43:41.60 .net
>>151
一回読んだら250ミリ秒くらいで覚えるけど

157:デフォルトの名無しさん
14/01/25 22:47:59.43 .net
なんで独自フレームワーク(笑)作る糞PG・SEってやたら深い階層アーキテクチャにすんだ?
何層ものレイヤーがまったく同じ処理を繰り返す意味ってなんなの?
サブシステム\からアクセスする共通ライブラリに書かず、それぞれのレイヤーで同じ処理をPrivateなメンバで持つって低能すぎませんか?
こういう糞コード見る度に設計(笑)とかInterface(笑)とか馬鹿にやるせるな・使わせるなっていつも思うんだが
こういうの手直しさせられる身にもなれよ糞PG・SEども

158:デフォルトの名無しさん
14/01/25 22:54:19.13 .net
仕事選べないって残酷だね

159:デフォルトの名無しさん
14/01/25 22:55:21.02 .net
俺の経験では、2chくんだりでそうやってクダ巻いてる奴こそ例外なく無能。

160:デフォルトの名無しさん
14/01/25 23:05:40.56 .net
>>154
分割してから別のところに発注するからだろ
そういう無駄があるからこそお前は飯が食えてるんだから上流様に感謝しろよ

161:デフォルトの名無しさん
14/01/26 07:35:00.63 .net
>>155
仕事したことないって夢のようだね

162:デフォルトの名無しさん
14/01/26 10:08:43.02 .net
君は夢に手が届かないのか
いかんなあ努力が足りないよ

163:デフォルトの名無しさん
14/01/26 11:27:23.29 .net
21世紀だというのになぜ人類が働かなければならないのか
機械とロボットだけが働いて、全人類がそのアガリで生きていける時代になるべきだ

164:デフォルトの名無しさん
14/01/28 14:40:31.64 .net
後方互換性を破壊しないで属性を拡張する方法ってないの?

プラグインのクラスにつける属性に機能を追加することを想定してます
古い実行ファイルでもプラグインの新しい部分は無視するようにしたい

既存のFooAttributeに新しいプロパティを追加すると
古い実行ファイルがGetCustomAttribute()したときにCustomAttributeFormatException 投げる(新しいプロパティなんて知らねーよって)し

FooAttributeの他にBarAttributeをつけても
新しい属性の型を解決できないのでGetCustomAttribute()でTypeLoadException

やっぱ古い方が参照してるpluginlib.dllを更新しないとダメ?

165:デフォルトの名無しさん
14/01/28 17:50:56.60 .net
>>161
・pluginlib.dllはそのままで、pluginlib2.dllを追加してBarAttribute。
・古いexeのアプリケーション構成ファイルを弄っていいならバージョンリダイレクトして
互換性のある新しいpluginlib.dllを参照させる。(ただし


166:pluginlib.dllに署名がないとダメ)



167:デフォルトの名無しさん
14/01/28 19:36:39.02 .net
>>161
System.AddIn

168:デフォルトの名無しさん
14/01/28 20:35:10.95 .net
属性ってテキストだしメタデータだから型は緩いのかとかちょっと思ったら
やっぱり型ぎちぎちなんだぬ

169:デフォルトの名無しさん
14/02/02 23:29:50.94 .net
MSモノにはヘルプのヘルプが必要という昔からの謎がある

170:デフォルトの名無しさん
14/02/02 23:45:41.88 .net
MSのドキュメントはずば抜けて丁寧すぎるから、勘違いしてOfficeと同じようにお客様感覚で使ってる人が多いんだよ
MS以外のゴミみたいなドキュメントで開発したら二度とそんなこと言えなくなる

171:デフォルトの名無しさん
14/02/02 23:52:07.57 .net
VS2010のヘルプはコピーが一部しかできないし、
MSDNは翻訳で変な日本語だし、ソース部分のコメントは英語だし、例が難しすぎたり的外れだったり・・・
で、結局、個人のサイトやブログのおかげでなんとかプログラムが書ける、というのが現状^^;

172:デフォルトの名無しさん
14/02/03 00:06:48.74 .net
>>167
最新のは翻訳が追いついていないのが歩から、機械翻訳のページは少し古いのみるといい

173:デフォルトの名無しさん
14/02/03 02:17:34.16 .net
>>166
俺も昔はMSDN読んでもイミフでなにこの糞とか思ったけどそれなりのレベルになってきたらMSDN見るのが一番早いもんな
他社のフレームワークのドキュメントとか読むとマジでどんだけMSDNわかりやすいか良くわかるわ
っつーか日本語あるだけでありがたい

174:デフォルトの名無しさん
14/02/03 07:50:47.78 .net
>>167
翻訳が必要って時点でゴミグラマ確定

175:デフォルトの名無しさん
14/02/03 20:22:46.93 .net
バイリンだけどブログラムは一行も書けない。
ここ何?
変な所に飛ばされた。

176:デフォルトの名無しさん
14/02/03 20:26:12.15 .net
梅淋って病気2つ持ってるのか

177:デフォルトの名無しさん
14/02/03 20:28:22.03 .net
淫らな梅林

178:デフォルトの名無しさん
14/02/03 22:32:01.30 .net
この雌豚め!

179:デフォルトの名無しさん
14/02/04 22:19:02.12 .net
他の人が作ったライブラりーをC#で使っていて、その中でエラー発生の
例外処理でMessageBoxが表示される仕様になっているのですが、
それを出さないようにできないでしょうか?ソースコードを変更できないので、
何か別の方法で。

180:デフォルトの名無しさん
14/02/04 22:31:40.37 .net
酷すぎ
親のWndProcに何かメッセージとかきてないかな

181:デフォルトの名無しさん
14/02/04 22:43:48.45 .net
>>175
ildasmして修正してilasm

182:デフォルトの名無しさん
14/02/04 23:03:04.38 .net
VCのプロジェクトファイルを弄ってみたいのですが分からんことが有ります。
vcproject.dllの参照渡してから次を実行すると、InvalidCastException吐き出されます。
new Microsoft.VisualStudio.VCProjectEngine.VCProjectEngineObject();

'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim' のオブジェクトを
型 'Microsoft.VisualStudio.VCProjectEngine.VCProjectEngineObject' にキャストできません。

見当外れなことしてる気がするんだけど、結局分からんという。

183:デフォルトの名無しさん
14/02/04 23:33:18.98 .net
よく判らんが取り敢えず引っかかったの
URLリンク(connect.microsoft.com)

184:デフォルトの名無しさん
14/02/04 23:54:58.71 .net
>>179
あざます!
URLリンク(connect.microsoft.com)
ほぼ同じ内容ですが、こっちも見て解決出来ました。

URLリンク(connect.microsoft.com)
で、次に合わせてこっちも見たら解決しました。おまけのような何かとして。

185:デフォルトの名無しさん
14/02/07 04:59:30.04 .net
sqlserverの10万行以上あるテーブルを別のデータベースのテーブルに移すために、
sqlcommandオブジェクトでi


186:nsertストアドプロシジャを毎行ループさせて呼び出しています。 ループごとに、sqlcommandを新生させていますが、明示的にディスポーズしてません。 多分、10万行分のsqlcommandが新生されながら、自動的にガベージコレクトされているのだと思います。 質問です。 ループ内部にusingステートメントを使ってsqlcommandをディスポーズさせる必要はないのでしょうか。



187:デフォルトの名無しさん
14/02/07 06:35:33.03 .net
SqlBulkCopy使えよ

188:デフォルトの名無しさん
14/02/07 07:11:53.74 .net
馬鹿は死ね

189:デフォルトの名無しさん
14/02/07 09:24:30.42 .net
すいません、自分以外の意見がほしいので聞きたいです。
LaLena.comというサイトのtsp.exe.zipについてです。
こちらのプログラムで使用している交叉は欲張り法にだと思うのですがどう思いますか?

190:デフォルトの名無しさん
14/02/07 09:27:33.24 .net
よくわからないニダ

191:デフォルトの名無しさん
14/02/07 14:48:29.48 .net
>>182
そんなクラスがあるなんて知りませんでした。ありがとうございます。
これって、移動先と移動元のテーブル構造が異なる場合でも、
insert文のように列ごとにコピー方法を設定できるのでしょうか。

192:デフォルトの名無しさん
14/02/07 19:48:10.91 .net
SQLServerにコピーするんじゃなくて、SQLServerからコピーするんだろ
別のデータベースってのは別のDBMSって意味じゃないのか?
そのデータベースでバルクコピーがサポートされてないとだめなんじゃね

別のデータベースってのが同じSQLServerのインスタンスのってなら、SQL一発で終わるんだが

193:デフォルトの名無しさん
14/02/07 20:12:05.93 .net
最小ログ操作の成立条件は厳しいから
Bulk使っても速くならん事が多いよ

SqlCommandの件だがPrepareしなけりゃ
開放しなきゃいけないようなリソースは抱えてない
気にるならしとけばいい程度

194:デフォルトの名無しさん
14/02/08 01:08:17.52 .net
>>187
>別のデータベースってのは別のDBMSって意味じゃないのか?
>別のデータベースってのが同じSQLServerのインスタンスのってなら、SQL一発で終わるんだが

すみません、用語が不正確だった
同一マシンで動作するSQLSERVERの異なるインスタンス間でのテーブル間コピーをしたいんです

ところで、もし、同じインスタンスのテーブルコピーだったら、一発で(超高速という意味でしょうか?)終わる?

>>188
>Prepareしなけりゃ開放しなきゃいけないようなリソースは抱えてない
わざわざ、開放のための準備(Prepare)をする必要はないってこと?
ガベージコレクトされるのをまってりゃおk?

>>181で自分が想像しているとおり、
「10万行分のsqlcommandが新生されながら、自動的にガベージコレクトされている」っていう考えでよい?


レスありがとうございます。

195:デフォルトの名無しさん
14/02/08 01:25:52.40 .net
>>189
正確にはGCされてるかどうかはそのときの状況次第
開放されたオブジェクトがすぐにGCされるわけではない

>ところで、もし、同じインスタンスのテーブルコピーだったら、一発で(超高速という意味でしょうか?)終わる?
超高速かどうかはしらんが同一インスタンスならDB名で修飾してinsert select 1文実行するだけ
別インスタンスなり別DBMSなりなら、俺ならまずリンクサーバ検討するがな
まあ、これ以上はDB板かどっかで聞け

196:デフォルトの名無しさん
14/02/08 01:59:03.44 .net
>>190
すみません、ありがとうございます。

ガベージコレクトの状況については、物理メモリの利用の推移をタスクマネージャーの動きで確かめてみたいと思います。

同一インスタンス内の異なるデータベース間でのテーブルコピーができるだけでも便利そうですね。> SqlBulkCopyクラス

197:デフォルトの名無しさん
14/02/08 02:41:37.40 .net
>>191
なんか勘違いしてそうだけど、DB名で修飾とか、リンクサーバとかは
SqlBulkCopyクラス関係ない話だぞ

つか、普通はループの外でコマンド生成するようにするだろ

198:デフォルトの名無しさん
14/02/08 03:33:35.48 .net
>>192
>普通はループの外でコマンド生成するようにする
そう思ったんですが、ループ毎にきちんと、COMMANDオブジェクトを初期化できる自信がなかったんで

199:デフォルトの名無しさん
14/02/08 03:35:22.36 .net
>>192
>DB名で修飾とか
勘違いでした。SQL文で、テーブルをデータベース名で修飾するわけですね

200:デフォルトの名無しさん
14/02/08 11:35:50.76 .net
>>193
パラメータの使い方がわからず、SQLにテキストで埋め込んでるのか?

あと、disposeは外部リソースを開放するもので、
マネージドメモリを開放するのはあくまでもGCだよ。

201:デフォルトの名無しさん
14/02/08 17:02:35.09 .net
C#でのTwitterクライアント開発の質問はここでいいのでしょうか?

202:デフォルトの名無しさん
14/02/08 17:04:56.26 .net
>>196
そんなもん出来合いのオープンソースなライブラリが腐るほどあるから好きなの選んでサンプルの通りに使うだけ
以上

203:デフォルトの名無しさん
14/02/08 17:32:18.32 .net
>>195
ディスポーズされると、即座に.netフレームワークに目をつけられてガベージコレクトされるものなのだと思っていました。

sqlcommandオブジェクトなのですが、ストアドプロック呼び出しで、パラメタオブジェクトを追加してます。
ループの外でnewしたsqlcommandオブジェクトを使いまわすと、
さっき追加したパラメタオブジェクトを初期化しないと、次のループで誤動作するのではないかと思ったんです。

ループ内で、パラメータオブジェクトをcommandオブジェクトに.addするので、
初期化しないと、二重に.addされることになってしまいます。
ループ内で最初に、commandオブジェクトのパラメタなどの設定がクリアする方法があればいいのですが。

204:デフォルトの名無しさん
14/02/08 18:08:32.85 .net
sqlcommand.Parameters.Clear()

205:デフォルトの名無しさん
14/02/08 18:52:35.58 .net
普通コマンドにパラメタaddするまでループの外でやるもんじゃ...

206:デフォルトの名無しさん
14/02/09 00:43:07.82 .net
System.Drawing.Imaging.Encoderで画像ファイルの保存を行おうと思っているのですが、
それぞれのEncoderがどのEncoderParameterをサポートしていてどういう値を設定できるか、
どこで調べられるのでしょうか?
とりあえずpng/bmp/jpgがわかればいいので、どこかに書かれたものを参照できれば
それでもかまいません。

207:デフォルトの名無しさん
14/02/09 01:00:03.01 .net
画像のメタデータから判断するのがいいんじゃないかな

208:デフォルトの名無しさん
14/02/09 01:32:07.59 .net
>>199
ああ!そんな便利そうなやつ、あったんだ!

>>200
そうなんですか。慣れていないもので。


どうもありがとうございました。

うー、抽象メソッドを実装するメソッド内に、sqlcommandオブジェクトの新生まで記述してしまっている。
また、その具象クラス数が多いので、修正するのが非常に面倒だなあ。
1000件処理するのに、0.5秒ほどかっているのが、もっと早くなって半分くらいになるなら、直す価値があるなあ。

209:デフォルトの名無しさん
14/02/09 08:23:22.57 .net
全体の数パーセントをいくら短縮しても
数パーセント以上に速くなることはないな

210:デフォルトの名無しさん
14/02/09 08:28:40.98 .net
1件INSERT×1000行で0.5秒って既に無茶苦茶早いだろ

211:デフォルトの名無しさん
14/02/09 10:10:19.29 .net
>>202
そういう話じゃなくて、Encoderがどういう設定に対応しているかが知りたいんですが。
たとえばJPEGエンコーダはQualityを設定できるのは知っていますが、他のEncoderでは
どうなのかとか、それぞれのEncoderで有効なColorDepthの値は何かとか。

212:デフォルトの名無しさん
14/02/09 11:03:31.87 .net
GetEncoderParameterListでも使っとけ

213:デフォルトの名無しさん
14/02/09 11:46:02.85 .net
画像毎ではなくて事前に求めておきたいと思ったんですが、MSDNのサンプルも
ダミーのBitmapからGetEncoderParameterListで求めてるんですね。失礼しました。

214:デフォルトの名無しさん
14/02/09 13:20:20.04 .net
c#で書いたオッパイスクリプト系プログラムってある?

215:デフォルトの名無しさん
14/02/09 15:31:28.62 .net
>>205
1000ループで、ドットを1個吐くようにしていて、
だいたい、1秒ほどでドットが2個吐き出されるようすを確認しました。

じゃあ、毎ループにsqlcommand新生のままで行こうかな。
直すの、面倒だし。

216:デフォルトの名無しさん
14/02/10 07:43:30.83 .net
まじめに計測しようよ

217:デフォルトの名無しさん
14/02/10 11:09:16.52 .net
SqlCommandの内部実装ってかなり良くできてる気がする
おんなじようなコード見つけてループの外に出したことあるけど
あんまり速度差でなかったんだよなぁ

218:デフォルトの名無しさん
14/02/10 11:18:02.16 .net
bcpでロードしたときの速度を参考にすれば、
クライアント側でどこまで改善可能かの指標になるよ

>1000000 行コピーされました。
>ネットワーク パケット サイズ (バイト): 4096
>クロック タイム (ミリ秒) 合計 : 120359 平均 : (8308.48 行/秒)

あとはDBスレにでも行ってくれ

219:デフォルトの名無しさん
14/02/10 11:52:20.55 .net
ローカルにMySQLをインストール。
WinFormではデータテーブルと、グリッドビューを配置。

実行時にDBデータがグリッドビューに表示されるようにしているんだけど、
2万行、40列くらいのデータを表示するのに5秒くらいかかる。

ちょっと遅い気がするんだけどそんなもん?

ちなみにコードは1行も書いてないっす。

220:デフォルトの名無しさん
14/02/10 12:25:09.46 .net
表示分だけ随時データとれよ

221:デフォルトの名無しさん
14/02/10 12:27:03.50 .net
妄想で事実を疑うってヤツだ。

222:デフォルトの名無しさん
14/02/10 16:36:59.02 .net
フォルダーやファイルのアクセス権について質問

■アクセス権の取得方法
・File.GetAccessControlを使用して、FileSystemAccessRuleの値から
アクセス権とユーザ・グループを取得
・WindowsPrincipal.IsInRoleを使用して自分が利用可能
(ユーザー・グループに該当するか)かどうかを判定

■質問
1.このやり方が一般的なのでしょうか?
2.所有者のアクセス権はフルコントロール扱いなんでしょうか?

2については、所有者が自分自身で、読み書きの制限が無いフォルダーが、
上記アクセス権の取得方法では、読み取りぐらいしか出来ないことになっていておかしい。
所有者のアクセス権の扱いが知りたいです。

223:デフォルトの名無しさん
14/02/10 17:41:42.63 .net
スレ違いは去れ

224:デフォルトの名無しさん
14/02/10 22:26:49.94 .net
ASP.NETスレッドがないので、ここで御願いします。

ASP.NET4からURLルーティングという機能が使えるようになり、
クエリストリングで指定していたパラメタを、ディレクトリ形式で指定し、ルーティング先ASPXページオブジェクト内で、取得できるようになりました。

さて、このディレクトリ形式で指定できるURLは、ビルトインのユーザ認証機能で、
アクセス許可設定はできるのでしょうか。

web.configの、locationタグで、URLを指定してから、子要素で認証関係の設定を行うだけで良いのでしょうか。

おねがいします

225:デフォルトの名無しさん
14/02/11 01:36:57.20 .net
WebProg板にあるっちゃあるが、あっちも過疎ってるしな

226:デフォルトの名無しさん
14/02/11 03:31:41.37 .net
>>219
URLリンク(msdn.microsoft.com)(v=vs.100).aspx

227:デフォルトの名無しさん
14/02/11 04:04:03.82 .net
>>221
非常に良く分かりました!良いページをありがとうございます。

URLルーティングされる静的URLも、物理URLに対するのと同様にアクセス制御ができるとわかりました。
また、 CheckPhysicalUrlAccess プロパティによって、
その静的URLだけでなく、ルーティング先の物理URLについてもアクセス制御が可能だと分かりました。

ありがとうございます。

228:デフォルトの名無しさん
14/02/11 11:39:39.22 .net
C#にはiniファイル読み書きクラスはないのか?

229:デフォルトの名無しさん
14/02/11 11:41:43.78 .net
そんな時代遅れなものはない
XMLかJSONを使え

230:デフォルトの名無しさん
14/02/11 11:45:26.87 .net
>>223
ふらっとVisual C#,C♯,C#(初心者用) Part110
スレリンク(tech板)

231:217
14/02/11 12:33:12.79 .net
ファイラー作ってんだけど、

例外回避したいからアクセス権で処理の可否を事前確認しようとしているんだけど、
アクセス権取得(GetAccessControl)で例外発生して使えない
どうすりゃいいっての?

まあ、>>217の■アクセス権の取得方法 で例外が発生した場合、
アクセス権が無いと判断すれば、やりたいことはやれるだけど
MSはACLでnull返すとか、個数0を返すとかしてくれれば良かったのに。

232:デフォルトの名無しさん
14/02/11 13:28:50.10 .net
>>224
今時iniとかありえないよな
でもユーザーが直接触る可能性のあるものはやっぱiniだわ

233:デフォルトの名無しさん
14/02/11 13:41:37.86 .net
>>227
何その自己矛盾

って思ったら、相手をあえて肯定しつつ若干反論になる自分の意見を主張してたのね
コミュ力高いと見た!

234:デフォルトの名無しさん
14/02/11 13:43:52.34 .net
まあAPI呼ぶのが無難かと

235:デフォルトの名無しさん
14/02/11 13:57:01.83 .net
JSONなら手書きもいけるっしょ
最近の人ならiniよりむしろ馴染みがあるのでは

236:デフォルトの名無しさん
14/02/11 17:06:05.00 .net
xmlもjsonも先方にわからないって怒られるからダメ

237:デフォルトの名無しさん
14/02/11 17:08:51.93 .net
おれおれフォーマットでいいならいくらでも作ればいいだろ

238:デフォルトの名無しさん
14/02/11 17:09:45.50 .net
そもそもiniの仕様がわからない

239:デフォルトの名無しさん
14/02/11 17:20:51.01 .net
[section]
key=value
;コメント
;まぁ大体こんな感じ

240:デフォルトの名無しさん
14/02/11 17:27:17.75 .net
xmlにしとけよ
iniはきちんと実装しようとすると沼にハマる

241:デフォルトの名無しさん
14/02/11 17:29:48.81 .net
xmlの沼よりマシな気がするけど

242:デフォルトの名無しさん
14/02/11 17:30:44.23 .net
なんで設定ファイルごときの仕様を厳密に守る必要があるんだ

243:デフォルトの名無しさん
14/02/11 17:39:02.12 .net
後で泣くのは自分だから

244:デフォルトの名無しさん
14/02/11 17:47:06.95 .net
iniは「”」とか微妙なところで個人差があるから独自フォーマットの方がマシ

245:デフォルトの名無しさん
14/02/11 18:13:01.70 .net
>>236
> xmlの沼

ってなに?

246:デフォルトの名無しさん
14/02/11 18:18:10.32 .net
>>239
そういう意味では、ini自体独自フォーマットでしょう。

247:デフォルトの名無しさん
14/02/11 18:20:10.16 .net
最近日本語が通じなくなってきたorz

248:デフォルトの名無しさん
14/02/11 18:33:17.00 .net
>>239
そういうのは標準のAPIを使ってない「iniモドキ」だろ。

249:デフォルトの名無しさん
14/02/11 18:42:55.46 .net
>>243
標準()のAPIでも挙動が異なるんだよ

250:デフォルトの名無しさん
14/02/11 18:51:58.22 .net
>>244
具体的には?

251:デフォルトの名無しさん
14/02/11 19:07:24.45 .net
「個人差」

252:デフォルトの名無しさん
14/02/11 19:56:10.55 .net
iniはvalueがコレクションとかだと面倒だけど
xmlは場合によっては&gtとかユーザーがやるんでしょ?
うーん

253:デフォルトの名無しさん
14/02/11 19:59:46.41 .net
CDATAの使い方でも教えとけよ

254:デフォルトの名無しさん
14/02/11 20:22:43.87 .net
普通のテキストファイルに設定データ書けばいいじゃん

255:デフォルトの名無しさん
14/02/11 20:30:49.58 .net
iniもxmlも普通のテキストファイルですが?

256:デフォルトの名無しさん
14/02/11 20:34:09.34 .net
>>249
だからその書式をどうするかの話だろ。
ひょっとして .ini とか XML がテキストファイルでないと思ってる?

257:デフォルトの名無しさん
14/02/11 20:38:26.66 .net
設定ファイルはXAMLもどきにしてコンポジションを定義するのに使ってる

258:デフォルトの名無しさん
14/02/11 20:38:55.97 .net
だから自分で勝手にフォーマットを決めろよ
APIなんか使わなくてもいいよ

259:デフォルトの名無しさん
14/02/11 20:53:57.68 .net
そうやって、一見似てるけど微妙に互換性がないフォーマットが増えていく

260:デフォルトの名無しさん
14/02/11 20:55:45.39 .net
XML≠テキストファイル

261:デフォルトの名無しさん
14/02/11 21:30:31.23 .net
互換性なんて幻想

262:デフォルトの名無しさん
14/02/11 21:37:39.49 .net
>>246
俺が「個人差」と言った意味がわかったろ
2万年ROMれ

263:デフォルトの名無しさん
14/02/11 21:45:41.73 .net
iniファイルの互換性って意味不明すぎる

264:デフォルトの名無しさん
14/02/11 22:00:58.57 .net
2chにいるガキ=甘ったれの能無し がデフォになりつつあるな
2chももうすぐ完全終了かもw

265:デフォルトの名無しさん
14/02/11 22:42:33.53 .net
先輩!前はどうだったんすかwww

266:デフォルトの名無しさん
14/02/11 23:48:03.69 .net
鼻ったれの種無し

267:デフォルトの名無しさん
14/02/12 00:44:24.12 .net
韓国人の強姦性は?

268:デフォルトの名無しさん
14/02/12 01:04:23.91 .net
映画「インスタント沼」
超お勧め しない

269:デフォルトの名無しさん
14/02/12 02:10:18.91 .net
クラスA
{
 クラス1
 クラス2
 クラス3
}

こんな風に、


270:複数クラスをクラスAに「集約」させて定義するのは、 クラスAの機能がクラス123に強固に依存するからなんでしょうか。 クラスAを実体化させた場合でも、当然、内部クラス123は、別々に実体化する必要がありますよね。 当たり前か。 こんな風にクラスを定義することってよくあることなんですか



271:デフォルトの名無しさん
14/02/12 02:18:31.98 .net
うん

272:デフォルトの名無しさん
14/02/12 02:59:09.17 .net
>>264
クラス1~3が絶対にクラスAでのみ使われるのなら
私も同じ様に書きますね
でもバラして書く人もいるでしょうね
結局は人それぞれなのでは?

273:デフォルトの名無しさん
14/02/12 06:50:28.93 .net
普通によく有る。
というか既存クラス123で提供されている機能を再利用するごく当たり前の方法。

別々に実体化といっても、確かに外部からオブジェクトを渡されて保持する場合も有るけど、
普通にクラスAのコンストラクタで生成すればいいだけ。

274:デフォルトの名無しさん
14/02/12 07:07:49.60 .net
>>264
単なるグループとしてAを使うならそうだけど、
本来は逆で、123がAに強く依存してる場合に使う
123はAのプライベートメンバに自由にアクセスできるからね

275:デフォルトの名無しさん
14/02/12 07:09:20.54 .net
両方向あるだろ

276:デフォルトの名無しさん
14/02/12 07:20:04.73 .net
264はネストクラスと言うことで良いのかな

277:デフォルトの名無しさん
14/02/12 09:08:03.76 .net
C#を使ってたら学校で恥ずかしい奴と言われました
みんなJavaを使っています
何とか言い返してやりたいのですが
簡潔に相手をギャフンと言わせるような文言はありませんか?
多勢に無勢で言われ放題はとても口惜しいです

278:デフォルトの名無しさん
14/02/12 09:47:08.44 .net
「ギャフン」と書いた紙を見せてこれ読んでみてと言う

279:デフォルトの名無しさん
14/02/12 09:56:57.77 .net
こんなバカの巣窟に依頼しても何も得られんよ

280:デフォルトの名無しさん
14/02/12 09:59:19.62 .net
>>273
バカの巣窟で釣られる人はバカの王様かなぁ

281:デフォルトの名無しさん
14/02/12 10:48:00.85 .net
C#はJavaと違って多重継承ができると言ってやれ
学校中の笑いものになれるよ

282:デフォルトの名無しさん
14/02/12 11:38:00.43 .net
コピペ元特定班の報告はまだなの?

283:217
14/02/12 12:25:06.00 .net
アクセス権について注意事項をここにまとめておきますね。
お礼は要りません。
FileSystemRightsのReadAttributesについて調べました。
属性って何が属性やねんと思われる方がお読みください。
ここでいう、属性はエクスプローラのプロパティで見れる属性と
イコールではありません。

■ファイルの読み込み属性のみの拒否
親ディレクトリでListDirectoryを拒否し、ファイルのReadAttributeを拒否すると、
File.Exists()自体でfalseが返ってくる。
つまり、なんの情報も得られないどころか、存在しないことになる。

■ファイルの読み込み属性のみの拒否2
親ディレクトリでListDirectoryを許可し、ファイルのReadAttributeを拒否しても、
File.Exists()はtrueが返ってくる。
更に、ファイルの属性(読み取り専用、SYSTEM等)が読み込めるだけでなく、
サイズ、時間(タイムスタンプ等)の基本情報の読み込みは可能。
つまり、下記のMSDNの注釈の意味はそういうことである。

■ファイルの読み込みデータのみの拒否
親ディレクトリでListDirectoryを拒否し、ファイルのReadDataを拒否すると
ファイルの属性(読み取り専用、SYSTEM等)が読み込めるだけでなく、
サイズ、時間(タイムスタンプ等)の基本情報の読み込みは可能。
当然データの読み込みは拒否される。

■File.GetAccessControl メソッド
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
NTFS 環境では、ユーザーが親フォルダーに対して ListDirectory 権限を
持っている場合、ReadAttributes および ReadExtendedAttributes が
そのユーザーに付与されます。
ReadAttributes および ReadExtendedAttributes を拒否するには、
親ディレクトリで ListDirectory を拒否します。

284:デフォルトの名無しさん
14/02/12 12:31:38.96 .net
調査乙ではあるが、OSバージョンによっても微妙に差異がありそうなんだが
vista前と以後とかで

285:217
14/02/12 12:37:23.89 .net
ついでに、FileSystemRightsの16進表示も書いておきます


286:。 こちらの方が、意味が分かりやすい。 フィルだーとファイルについては対応するものは同じ値が割り振られています。 ■FileSystemRights ListDirectory 0x000001 ReadData 0x000001 CreateFiles 0x000002 WriteData 0x000002 CreateDirectories 0x000004 AppendData 0x000004 ReadExtendedAttributes 0x000008 WriteExtendedAttributes 0x000010 ExecuteFile 0x000020 Traverse 0x000020 DeleteSubdirectoriesAndFiles 0x000040 ReadAttributes 0x000080 WriteAttributes 0x000100 Delete 0x010000 ReadPermissions 0x020000 ChangePermissions 0x040000 TakeOwnership 0x080000 Synchronize 0x100000 Write 0x000116 Read 0x020089 ReadAndExecute 0x0200A9 Modify 0x0301BF FullControl 0x1F01FF



287:217
14/02/12 12:38:27.92 .net
>>278
調査環境は
OSWindows8.1

288:218
14/02/12 12:41:05.16 .net
>>278
調査環境は
OS Windows8.1
.NET .NET FrameWork4
ファイルシステム NTFS

です。

289:デフォルトの名無しさん
14/02/12 19:45:28.85 .net
親となるAクラスと継承した子クラスBがあります。
それぞれに同じ名称のint型の変数oneがあったとします。
Aにはメソッドtest()がありone++;を実行するとします。

BからAのメソッドをtest()を呼び出す場合、test(one)とoneを引数とせずにAのoneではなくBのoneを++;する記載方法はありますでしょうか?

290:デフォルトの名無しさん
14/02/12 19:50:28.19 .net
あえてなら
class A {
&nbsp; &nbsp; private int one;
&nbsp; &nbsp; public void test() {
&nbsp; &nbsp; &nbsp; &nbsp; this.one++;
&nbsp; &nbsp; &nbsp; &nbsp; this.ontest();
&nbsp; &nbsp; }
&nbsp; &nbsp; protected virtual void ontest() { }
}
class B {
&nbsp; &nbsp; private int one;
&nbsp; &nbsp; protected override void ontest() { this.one++; }
}
こんなん
でも意図が分からないからこれがベストかどうかは知らん
ただ名前が同じというのは何の意味も関係もないのは確か リフレクション使うってんなら別だが

291:デフォルトの名無しさん
14/02/12 19:53:08.03 .net
>>282
そんなアホなコードは書かないのが正解。

どうしてもやるならoneはフィールドでなくプロパティーにしてBはそれを
オーバーライドする。

292:デフォルトの名無しさん
14/02/12 20:20:17.85 .net
ありがとうございます
ここいうメソッドtest()はAでもBでも使用するのですが、全く同じ内容で共通の名称の変数oneの内容が違えば使いまわせたので
使いまわす方法がないか気になってました
実際は引数が複数あるのであまり追加したくなかったのですが、素直に引数を追加します

293:デフォルトの名無しさん
14/02/12 22:27:43.62 .net
別にアホではないだろ
典型的なテンプレートメソッドパターンじゃないか

294:デフォルトの名無しさん
14/02/12 23:27:10.10 .net
らうめん

295:デフォルトの名無しさん
14/02/12 23:35:24.08 .net
つけぅめん

296:デフォルトの名無しさん
14/02/12 23:37:49.04 .net
ブレッドアンドバターじゃないか、にみえた

297:デフォルトの名無しさん
14/02/12 23:52:47.85 .net
どうやら

298:デフォルトの名無しさん
14/02/12 23:55:43.41 .net
ペドロアンドカプリシャス

299:デフォルトの名無しさん
14/02/13 01:56:15.28 .net
>>265 おおっそうですか。
>>266
>クラス1~3が絶対にクラスAでのみ使われるのなら
「のみ」がポイントですね。子クラスをばらして使うことは考えないので大丈夫です。でも、あえて子クラスのみを実体化しようと思えば、
親クラス.子クラス()のようにして、親クラスのメンバとしての子クラスについてそのコンストラクタを呼んでいいのかな。

>>267
>普通にクラスAのコンストラクタで生成すればいいだけ。

なるほど、クラスAに子クラスを集約した場合には、クラスAのコンストラクタで連鎖的に、子クラスを実体化したいと思います。
ありがとうございます。

>>268
>123はAのプライベートメンバに自由にアクセスできるからね

なるほど、クラスAに複数の子クラスを集約した場合、子クラスからは親クラスAのプライベートメンバにもアクセスできるようになるのか。
重要な知見です。でも、ちょっとカプセルが破けた感じかな。

>>269
>両方向あるだろ
親クラスが子クラスに強固依存、あるいは、子クラスが親クラスに強固に依存
この両方のことですね。今回は、親クラスが子クラスの機能に大いに利用し依存し、また、外部から子クラス単独


300:を使うことはないという場合になります。 みなさま、ありがとうございました。 整理がついてきました。



301:デフォルトの名無しさん
14/02/13 03:14:08.62 .net
整然とした集約がいいなら子クラスをインターフェースに書き換えるとかも手だね

302:デフォルトの名無しさん
14/02/13 10:42:27.49 .net
>>293
そのインターフェイスを実装するクラスの定義はどこに書くんだ?

303:デフォルトの名無しさん
14/02/13 15:07:20.80 .net
>>294
チラシの裏

304:デフォルトの名無しさん
14/02/13 15:10:28.39 .net
>>294
絵馬

305:デフォルトの名無しさん
14/02/13 16:17:18.62 .net
>>294
割り箸の袋の裏

306:デフォルトの名無しさん
14/02/13 21:51:50.59 .net
>>294
お前のカーチャンが寝てる隙に腹に油性ペンで

307:デフォルトの名無しさん
14/02/14 02:34:56.13 .net
>>294
頭の中で動いてたら
別にわざわざコードに書く必要なくね?

308:デフォルトの名無しさん
14/02/14 12:57:33.92 .net
>>299
現実と頭の中との区別がついていない

309:デフォルトの名無しさん
14/02/14 16:05:20.88 .net
[DllImport("user32.dll", SetLastError = true)]
public static extern uint keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);

この使い方でDLL のプリロード攻撃は問題ないのでしょうか?
URLリンク(support.microsoft.com)

310:デフォルトの名無しさん
14/02/14 16:39:56.84 .net
wellknown dllだから問題なす

311:デフォルトの名無しさん
14/02/14 17:12:05.87 .net
SetDllDirectory呼んどけ

312:デフォルトの名無しさん
14/02/14 18:16:39.56 .net
最近C#始めたのですが、switchでbreak;を省略できないので、
困っています。他の言語でbreak;を省略する方法で記述した
プログラムをC#に移植する場合は、どうするのが一般的でしょうか?

313:デフォルトの名無しさん
14/02/14 18:25:48.43 .net
驚愕のgoto

314:デフォルトの名無しさん
14/02/14 18:29:18.98 .net
case 1:
case 2:
処理
このようにcaseの中になにも書かない場合に限りbreak省略OK
何らかの処理をしてからフォールスルーしたいときはbreakの代わりに明示的にgotoを記述する

315:デフォルトの名無しさん
14/02/14 18:31:47.36 .net
switch で break; 使うのはCからのお約束だし、
割り切って全ソースの switch 検索して追加してく以外無いんじゃない?
どうせそれ以外の部分だって修正無しに使えるわけ無いんだし

316:デフォルトの名無しさん
14/02/14 18:48:13.19 .net
みなさん素早いコメントありがとうございます。
goto文を使う方法があるなんて知らなかったです。
少し抵抗がありますが、さっそく使ってみます。

317:デフォルトの名無しさん
14/02/14 20:32:34.62 .net
 
 使 う な 

 

318:デフォルトの名無しさん
14/02/14 20:44:17.23 .net
case 1: goto Case_2;
case 2: Case_2:

319:デフォルトの名無しさん
14/02/14 21:35:04.00 .net
goto case 2;
goto default;

でいいよ~

320:デフォルトの名無しさん
14/02/14 22:28:02.96 .net
後藤さんと愛を育もうとしたのですが、この愛は壊れてしまいました
goto                          break

321:デフォルトの名無しさん
14/02/14 22:32:31.04 .net
C#でgotoなんて使ったこと無いな。

322:デフォルトの名無しさん
14/02/14 22:38:02.39 .net
多重ループでbreak代わりに使うわ

323:デフォルトの名無しさん
14/02/14 22:53:53.86 .net
マウスで地形になるやつはJavaScriptで作れますか?

324:デフォルトの名無しさん
14/02/14 22:55:49.43 .net
複雑な分岐とか書く場合にifの括弧に複雑な式を書くぐらいなら
単純な式のifを多く並べてgotoで飛ばした方がむしろ可読的に書ける場合とかあるけど、
使いどころの選択と(こっちは一般にあまり強調されないが)ラベル名の命名センスが問われるね。

俺は割とgoto使うけど、無頓着なダメグラマが乱用したら害しかないのは間違いない。

325:デフォルトの名無しさん
14/02/14 23:32:39.52 .net
前に飛ぶのか後ろに飛ぶのか一目で分からないのが痛い

326:デフォルトの名無しさん
14/02/14 23:59:19.27 .net
アセンブラじゃあるまいし構造化ができる言語で前に飛ぶgotoなんて使わないよw

327:デフォルトの名無しさん
14/02/15 00:01:46.65 .net
ループ前後での制御に使うのがgotoだと思っておけばいいんじゃないの

328:デフォルトの名無しさん
14/02/15 00:03:16.99 .net
オブジェクト指向言語で何の話してんだw

329:デフォルトの名無しさん
14/02/15 01:17:25.28 .net
そもそもなんでCと違うようにして
ダサい方法でそれをできるようにしたのか

330:デフォルトの名無しさん
14/02/15 02:30:53.36 .net
gotoなんて、つかうのは、BASIC
もううんざり

331:デフォルトの名無しさん
14/02/15 02:38:14.67 .net
gotoはコンパイラ警告出しても良い時代だと思う

332:デフォルトの名無しさん
14/02/15 02:52:04.18 .net
>>323
そう思う。

>>316を悪く言っているわけではないが、
>ラベル名の命名センスが問われる
にはいらいらを覚えてしまった。

アセンブラで組んでいたときは、jmpの連発で、何がなんだかわからなくなってしまう。

Basicやってない

VBAで組んでいるスパゲッティアプリを修正、改良していると、
もうどうでもよくなって、その場しのぎでとにかく動けばいいものを組んでしまう。

C,C++,javaやってない

C#だとオブジェクト指向でクラス設計と関係を重視して、
あとで振り返りやすい美しいものになる。

いまここ。

333:デフォルトの名無しさん
14/02/15 06:31:09.00 .net
c#にもgotoあるのかよ

334:デフォルトの名無しさん
14/02/15 06:56:48.88 .net
switch文が縦に長くなりがち。

335:デフォルトの名無しさん
14/02/15 07:01:49.88 .net
今回の質問者のようにCとかC++のような言語からの移植を考慮してあるんでしょ。
しっかりオブジェクト指向でやれば、そもそもswitch/case文すらあんまり使わなくなるし。

336:デフォルトの名無しさん
14/02/15 07:12:10.68 .net
あえてgotoを残したのはcとの互換のほか、
特に禁止にしなくても「おまいらわかってるだろ」てことらしい

337:デフォルトの名無しさん
14/02/15 07:26:08.93 .net
gotoは宝だ!

338:デフォルトの名無しさん
14/02/15 07:58:45.51 .net
後藤さん

339:デフォルトの名無しさん
14/02/15 10:31:00.19 .net
>>327どうしてswitch/case文使わなくなるん?
なに使えばいいの?

340:デフォルトの名無しさん
14/02/15 10:42:27.99 .net
単純に処理の振り分けってことを考えたらどうせ似たような文書くんだから同じ
使ってないんじゃなくて他の書き方で使ってるだけ

341:デフォルトの名無しさん
14/02/15 11:03:30.56 .net
オブジェクト指向だと多態とか継承を使うからswitchをあまり使わないという
昔からある言説

342:デフォルトの名無しさん
14/02/15 11:18:58.51 .net
固定長の配列を受け取る関数を作ろうと思ったら
固定長の配列のみをメンバーに持つclassにして
それを受け取るぐらいしかないでしょうか。

343:デフォルトの名無しさん
14/02/15 11:30:11.15 .net
そのままreturnすれば?

344:デフォルトの名無しさん
14/02/15 16:33:23.25 .net
>>333
コンパイラとか書けば、switch文は必ず使うよな。

345:デフォルトの名無しさん
14/02/15 16:37:34.11 .net
組込み型とか内部見たらifもswitchも使いまくりじゃん
内部実装なんてどうでもよくないか?
オブジェクト指向に必要なのはモジュール化する意味だろ?
使用者が内部実装なんて気にせず簡単かつ便利に使えることが一番重要だろーが
ブラックボックステストで内部実装把握しろみたいな糞実装多過ぎるんだよカスPGども

346:デフォルトの名無しさん
14/02/15 17:14:41.79 .net
ごみん

347:デフォルトの名無しさん
14/02/15 17:15:41.80 .net
>>337
>オブジェクト指向に必要なのはモジュール化する意味だろ?

あと、継承させることによる、プログラミング中の整理のつき易さ

348:デフォルトの名無しさん
14/02/15 17:53:56.88 .net
>>338
素直に謝れる奴って好きだぜ///

349:デフォルトの名無しさん
14/02/15 18:33:35.70 .net
>>340
そのユーモアがいいね

ところで、
c#コードも大事だけど、
SQLのテーブルとテーブル構造とストアドプロシジャは、なかなか修正できないので、
最初の設計って大切だなと思うこの頃です。
もう14年もたったデータベースがまだ使われているし、特に困ったこともない。

350:デフォルトの名無しさん
14/02/15 19:46:57.04 .net
>>331
例えば、スーパーマリオで、
通常マリオ、スーパーマリオ、ファイアマリオという状態に対するイベントの組み合わせを
条件分岐を使わずに書くと。

基底クラス、通常マリオ、スーパーマリオ、ファイアマリオを作って、
コントローラの操作やらゲーム内のイベントをそれぞれメソッドで定義し、
呼び出し側は基底クラスで参照しておく。

キノコ、フラワー、敵にぶつかった時は、各クラスが自分の次の状態のマリオの
インスタンスを返してやる。

こうすれば、イベントに対して、各マリオクラス固有に動作を実装するだけでよくて、
そこに条件分岐というものはどういう形であれ全く入って来ない。

言葉だけだと分かりずらいので、この辺参考にして貰えればいいと思う。
URLリンク(d.hatena.ne.jp)

351:デフォルトの名無しさん
14/02/15 19:55:45.38 .net
実際にマリオ作ろうと思ったらそんな設計にするやつは少数派だろうな・・・

352:デフォルトの名無しさん
14/02/15 19:56:11.70 .net
多段ifも禁止

353:342
14/02/15 20:11:52.61 .net
こんなこと書いてるが、普段の仕事はC言語で
おもいっきりスパゲティー、1関数何百行、10段ぐらいのネスト、
コメント無しの技巧的なコード、グローバル変数の名前がaとかbとか1文字でコメント無し、
そしてgoto文使いまくりの最低なソースと大格闘しているわけだ。

C#の仕事したいよ。。。

354:デフォルトの名無しさん
14/02/15 20:14:51.25 .net
説明するのもバカバカしい話だけど、本来の話は多態で無くせるswitchがあるよっていう話で、
当たり前だけど多態使えばswitchを全廃できるなんて馬鹿な話じゃない。

そんな訳ないでしょ。

355:デフォルトの名無しさん
14/02/15 20:18:23.09 .net
誰が全廃って言ってる?

356:デフォルトの名無しさん
14/02/15 20:21:17.37 .net
また荒れてきそうだな
雪でも被って来いよ

357:デフォルトの名無しさん
14/02/15 20:26:29.00 .net
>>347
鳥頭か。
誰も言ってないが、誰かがそう言ってるという前提で話をしている人ならいる。

358:デフォルトの名無しさん
14/02/15 20:33:28.90 .net
ざっと見る限り>>331だけだな。
ちなみに、>>327,>>342も俺な。「あんまり」という言い方してる。

359:デフォルトの名無しさん
14/02/15 20:46:51.71 .net
ああそうか。
何故かデザインパターンという言葉に噛み付いてくる奴が居るから使わずに、
Stateパターンのケースを紹介しただけのつもりだったけど、
確かに全て条件分岐を無くせると誤解されそうだな。すまなかった。

360:デフォルトの名無しさん
14/02/15 20:54:26.10 .net
>>350
現実には「あんまり」と評するほどもswichの使用頻度なんか変わらない。

同じ話を繰り返したくないが、正しくは「多態で無くせるswitchがあるよ」という程度のインパクトしかない。

361:デフォルトの名無しさん
14/02/15 21:07:07.23 .net
プロジェクトのフォルダの管理に関して上級者の皆さんにお聞きしたいのですが、
VS2008とVS2013をインストールしていて、7:3くらいでVS2008を使っています。
デフォルトの保存先はCディスクのそれぞれ、
My Documents\Visual Studio 2008\Projects
My Documents\Visual Studio 2013\Projects
ですが、ちょっとしたテストはこれらのフォルダに適当にサブフォルダを作って保管しています。
一方、本格的なプロジェクトはDesktopにそれぞれ専用のフォルダを作って、
プロジェクト1
プロジェクト2
みたいに管理しています。
でも、自己流なので混乱気味です。もっと良いお勧めの方法ありますか?

362:デフォルトの名無しさん
14/02/15 21:14:48.78 .net
フォルダ分けで混乱しそうになるほどソリューションを乱造しない

363:デフォルトの名無しさん
14/02/15 21:26:46.85 .net
最近は仮想環境に作ったDebianのgitlabに全部突っ込んでる

俺適当にサクサク消すからさーサクサク涙が出るんだよね後で

364:デフォルトの名無しさん
14/02/16 18:21:11.30 .net
文字列をgoogleみたいに
and or ""などの演算子を使って検索するライブラリ教えて

正規表現で実装してたら、ユーザーが使えなくて文句が出たわ

365:デフォルトの名無しさん
14/02/16 18:42:46.51 .net
それライブラリ必要か?

366:デフォルトの名無しさん
14/02/16 18:45:26.59 .net
必要なんだよ
理解しろよ上級者

367:デフォルトの名無しさん
14/02/16 18:53:47.99 .net
ユーザには使えないけど、あんたは出来るだよね?
じゃあちょっとラッパー書いてやればいいだけじゃないか。

368:デフォルトの名無しさん
14/02/16 18:53:51.54 .net
ローカル画像検索のライブラリ無いっすかね?

369:デフォルトの名無しさん
14/02/16 18:57:51.51 .net
Windowsの検索を利用するライブラリはないでしょうか

370:デフォルトの名無しさん
14/02/16 18:58:58.51 .net
Eigenみたいな高速な行列演算をおこなうライブラリはないでしょうか?

371:デフォルトの名無しさん
14/02/17 00:01:00.25 .net
抽象クラスの存在意義ってあるのか?

372:デフォルトの名無しさん
14/02/17 01:10:22.38 .net
テキストボックスのテキストを取得したいのですが、うまくいかないので質問させてください。
対象とするアプリケーションは、kabuステーションという株ドットコム証券の専用ツールです。
これの現物買発注ダイアログで、テキストボックスに入力した値(例えば証券コードのボックス)を取得したいのですが、うまくいきません。
今やっている方法は、sendmessageのWM_GETTEXTを使う方法です。
他のアプリケーションのテキストボックスや、kabuステーションのラベル(例えば、数量や執行条件など)のテキストは同じ方法で取得できるのですが、
なぜかkabuステーションのテキストボックスに入力した値だけは取得できずに困っています。

具体的なプログラムは以下です。
(hWndはウィンドウハンドルであり、正しく取得できていることを確認しています)

[DllImport("USER32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
[DllImport("USER32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPTStr)] System.Text.StringBuilder buff);
private const int WM_GETTEXT = 0xD;
private const int WM_GETTEXTLENGTH = 0xE;


//WindowのTextのバイト数を取得
int byteLength = SendMessage(hWnd, WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero).ToInt32();
System.Text.StringBuilder buff = new System.Text.StringBuilder(byteLength + 1);

//WindowのTextのバイト数を取得
byteLength = SendMessage(hWnd, WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero).ToInt32();
buff = new System.Text.StringBuilder(byteLength + 1);
//Textを取得(wParamは文字数,lParamはTextを受け入れるバッファ)
SendMessage(hWnd, WM_GETTEXT, byteLength + 1, buff);

373:デフォルトの名無しさん
14/02/17 01:17:27.05 .net
Lengthは取得できるの?
それと、本当にテキストボックスか?spy++とかで見てみろ

374:デフォルトの名無しさん
14/02/17 01:20:02.78 .net
lengthが取得できていないのかと思って、10文字固定でやってみましたがダメでした。
spy++は入手できていないのでウィンドウエクスプローラを使っているのですが、
テキストボックスかどうかって、どこを見ればわかりますか?

375:デフォルトの名無しさん
14/02/17 01:56:51.39 .net
ウィンドウクラス名を見る

376:デフォルトの名無しさん
14/02/17 02:10:36.96 .net
他のを見たところ、editなどとなっていましたが、取得したいボックスには
そういうのは入っておらず、謎の文字列が並んでいました
こういう場合、根本的に取得できないのでしょうか?
(settextならできたのですが)
また、これ以外の方法で取得する方法はあるのでしょうか?

377:デフォルトの名無しさん
14/02/17 02:21:06.17 .net
UIAutomationとか

378:デフォルトの名無しさん
14/02/17 11:36:24.33 .net
>>367
クラス名は
WindowsForms10.Window.8.app.0.2e0c681
となっています。
一部の入力ボックスは
WindowsForms10.EDIT.app.0.2e0c681
となっており、テキストの取得が可能でした。
EDITが入っているものは取得できるのですが、そうでないものはどうすればいいのか分かりません。

379:デフォルトの名無しさん
14/02/17 15:37:52.36 .net
ドトネトじゃねーか
Reflectorにアセンブリをドロップしてみそ

380:デフォルトの名無しさん
14/02/17 19:38:52.35 .net
サウンド関連は今もDirectXや外部ライブラリに頼るしかないって感じでしょうか?
Win8.xみたいなメトロアプリでもそこらへんは変わらないんでしょうか?

381:デフォルトの名無しさん
14/02/17 19:50:03.09 .net
WPFならMediaElementとかがある
ストアアプリも同様

382:デフォルトの名無しさん
14/02/17 19:50:51.13 .net
もっと下層の、効果音をミキシングとかその辺はまあ…

383:デフォルトの名無しさん
14/02/17 19:56:40.92 .net
>>373
ありがとうございます
調べてみます

384:デフォルトの名無しさん
14/02/17 20:21:30.43 .net
>>371
やってみました。
私のC#の知識では、どこをどう見ればいいのか全然分かりませんでした・・・

385:デフォルトの名無しさん
14/02/17 23:57:41.72 .net
ILSpyでデコンパイルしたプロジェクトってエラーだらけでリビルド出来ないのだがこんなもんなのか?
割と期待して導入しただけにこれにはがっくし来たよ
謎の$記号とかなんなんだろうなあれ

386:デフォルトの名無しさん
14/02/18 00:27:01.22 .net
コンパイラが自動生成してる部分があるからね。まぁ諦めろ。

387:デフォルトの名無しさん
14/02/18 00:32:32.09 .net
なるほど自動生成か
あーステップ実行したいよ…

388:デフォルトの名無しさん
14/02/18 01:39:38.20 .net
デバッガをアタッチすればILでステップ実行はできるでしょ
ILはC#がわかってりゃ十分読める

389:デフォルトの名無しさん
14/02/18 01:58:53.83 .net
MicrosoftがWindows/Windows Phone上でAndroidアプリを実行可能にする計画と報じられる

URLリンク(mobile.slashdot.jp)

C#でアンドロイド開発・・・

390:デフォルトの名無しさん
14/02/18 02:03:20.59 .net
ASP.NETにはドロップダウンリストコントロールはありますが、
コンボボックスはあるんでしょうか。

ドロップダウンリストは、データソースから導出されたリストから一列を値として取得できるだけです。
コンボボックスというのは、ドロップダウンリストの能力も持ちながら、テキストボックスのように任意の文字列の入力もできます。

391:デフォルトの名無しさん
14/02/18 02:06:43.76 .net
一応、次の記事を見つけました。

URLリンク(www.atmarkit.co.jp)

ASP.NETのAJAXという機能を使ってコンボボックスを利用できそうです。
AJAXって、JAVAスクリプトを駆使しているものですよね。

392:デフォルトの名無しさん
14/02/18 03:09:55.78 .net
>>381
Win32APIも呼ばせろ

393:ぴんく
14/02/18 15:59:07.18 .net
ぴんくちゃんねるで画像認証が導入されたせいで書き込みが自由に出来ないので
浪人BETAで発行される メールアドレス・ハッシュキーを使って画像認証をスキップ出来る
ブラウザを開発しています。

394:デフォルトの名無しさん
14/02/18 16:17:42.41 .net
続きはこちらでどうぞ
URLリンク(twitter.com)

395:デフォルトの名無しさん
14/02/18 17:03:33.62 .net
もう普通に書けるらしいぞ

396:デフォルトの名無しさん
14/02/18 18:07:30.29 .net
ERROR!
ERROR:CAPTCHAを記入する必要があります
画像認証無しで投稿できます!

JaneXenoで浪人を使えます。
Live2chで浪人を使えます。
Respoolで浪人を使えます。アンドロイド
2chA1Foxで浪人を使えます。ア>ンドロイド
2chスマホ ブラウザ(iand2ch.net)で画像認証なしでPINKへ投稿できます。

2chスマホ ブラウザ(i.bbspink.com)で画像認証なしでPINKへ投稿できます。開発中


>>387
どこが

397:デフォルトの名無しさん
14/02/18 18:22:30.28 .net
普通に書けたけどな
荒らし対策で一時的にオンにしたって言ってたぞ。
●入れてたりしないか?

398:デフォルトの名無しさん
14/02/22 08:47:46.47 .net
プログラミングやっていると、頭が精密になってくるのか、生来のものなのか、他の人の言葉の羅列が理解できなくなる。
仕様決定のための打ち合わせをしていても、頭に入ってこない。
わからないが聞いているうちにわかるだろうと相槌を打つと、
どんどんと手続き言葉の羅列が流し込まれてくるので、ますますわからなくなる。
反応をしないでいるが、頭が悪いと思われているかもしれないと考えると、余計に気が散ってしまう。

で、後でじっくりとノートに図式を書きながら理解していく。
すると、ブロックがきちりきちりとはまっていく感じに理解していく。
するとたった一つの言葉で語られていたことが、たくさんの場合わけが必要だとも気づき、用語も新生することになる。
表にまとめてそれぞれの条件も綺麗に整理する。
ここまできてようやく理解できる。

だから、あのシリアル化ストリームから即座に理解するなんてありえないんだと思った。
自分の頭の構造がちょっと違うのだと気づいた。

399:デフォルトの名無しさん
14/02/22 08:49:18.05 .net
かわいそうに。疲れているんだね。

400:デフォルトの名無しさん
14/02/22 09:50:33.48 .net
なんだ、その打ち合わせは口頭でしかやってないのか?
何か図を描いた資料を用意してないのか?
もしくはホワイトボードに書きながらとかやらないのか?
そりゃ、分からんだろ。

401:デフォルトの名無しさん
14/02/22 09:52:34.61 .net
かわいそうに。釣られてしまったんだね。

402:デフォルトの名無しさん
14/02/23 06:19:41.46 .net
>>392
レスありがとうございます

私だけではないんですね。よかった。
後で思ったんですけど、プログラマの理解はプログラミングに通じるような、必要なすべてを考慮あるいは定義することになります。
しかし、業務に携わっている人の業務の理解は全く違う。だから具体例ばかりをあげられる。
で、そこから本質を抽出するのがわれわれなんだと思いました。
この頭の構造でなんの後悔もありません。

プログラマは本質をつかめます。つかめなければちょっとしたプログラムなんてかけないはずです。
だから人にわかりやすく教えることも長けています。私がそうです。
物事を幼稚園児にもわかりやすく教えられそうにいつも思っているくらいです。

403:デフォルトの名無しさん
14/02/23 09:20:33.82 .net
マ板でやれ

404:デフォルトの名無しさん
14/02/23 18:19:07.87 .net
>人にわかりやすく教えることも長けています。私がそうです
>>390,394を見る限り、どうみてもそれは間違っています
つまり、あなたは単に頭の悪い人です

405:デフォルトの名無しさん
14/02/23 18:20:48.89 .net
マ板でやれ

406:デフォルトの名無しさん
14/02/23 18:23:27.84 .net
今日はマ板君がんばってるな

407:デフォルトの名無しさん
14/02/26 21:34:05.48 .net
Int32.Parseにアルファベット食わせた時にFormatExceptionをキャッチしているのに
コンソールに
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
って出ちゃうんだけどこれってなんとかならん?

408:デフォルトの名無しさん
14/02/26 21:48:17.75 .net
コンソールに? 出力ウィンドウじゃなくて?

409:デフォルトの名無しさん
14/02/26 22:17:24.21 .net
むしろそんなもの何とかしたいという発想が謎

410:デフォルトの名無しさん
14/02/26 22:20:12.34 .net
>>399
そんなもんキャッチするな
失敗するのがわかってるんならTryParseを使え

411:デフォルトの名無しさん
14/02/26 22:50:15.15 .net
いや、失敗するのがわかってたらパースしようとするなとw

412:デフォルトの名無しさん
14/02/26 23:37:00.87 .net
男なら、危険を顧みず、死ぬと分かっていても行動しなければならない時がある
負けると分かっていても戦わなければならないときがある

413:デフォルトの名無しさん
14/02/27 00:14:02.62 .net
ポエマーきもっ、まで読んだ。

414:デフォルトの名無しさん
14/02/27 00:23:11.82 .net
ハーロック△

415:デフォルトの名無しさん
14/02/27 00:54:29.96 .net
女子校生だったらどうよ?

416:デフォルトの名無しさん
14/02/27 01:03:56.03 .net
>>402
バリデーションの為だから失敗する前提と言うのは確かだな。
なんか本末転倒な気もするけどTryParseでスッキリしたわ。ありがとう。
しかしキャッチ自体はできるのにイチイチログはくとか気持ち悪いな。
例外処理で引っかけるとコスト高いし折角スッキリ書けるのに勿体ない。

417:デフォルトの名無しさん
14/02/27 01:20:06.64 .net
それってデバッグ情報をfullとかpdb-onlyで実行してるからじゃないの?

418:デフォルトの名無しさん
14/02/27 11:14:22.34 .net
環境も何も書かんで言われても解らんわな
変なデバッガアタッチしてたりするかもしれん

419:デフォルトの名無しさん
14/02/27 13:11:22.28 .net
例外がコスト高いってなら、極力発生しないように
IsNumericとかで先にチェックしてからやればいんじゃね。
念のためTryはするとして。

420:デフォルトの名無しさん
14/02/27 13:16:19.15 .net
>>409 >>410
VisualStudio2013のWPFアプリ、.NET4Full向け。Release版。
プロジェクト設定は特に変更せずって感じ。

421:デフォルトの名無しさん
14/02/27 13:19:57.09 .net
>>411
うん、そう。
だから例外処理一本で出来ればコード的にはスッキリするのになって愚痴だよ。
念の為にしかならないのは仕組みとしてもったいないなって話。
今回のログはく話とは全然違う話ではあるけど。

422:デフォルトの名無しさん
14/02/27 13:27:40.72 .net
UIに凝ると、その部分のコードがコテコテになる。

423:デフォルトの名無しさん
14/02/27 13:29:48.56 .net
自家用書き捨てコードは、ちょっと変な入力しただけでハングするけど何の問題もない。

424:デフォルトの名無しさん
14/02/27 14:23:55.00 .net
ハングするのはないな
最低限のエラーチェックはするけど、エラー処理ルーチンまでは書いてられないので、いきなり異常終了しちゃうが

425:デフォルトの名無しさん
14/02/27 16:47:49.53 .net
>>416
適当な階層でcatchして無視するなり、リスタートするなりすればいいじゃん、

426:デフォルトの名無しさん
14/02/27 17:31:52.72 .net
>>403
一般的にパースのエラーはパースしないと分からない(事前チェックとパースは本質的に同じ処理コスト)なので
「失敗するのがわかってたらパースしようとするな」はない。TryParseが正解

427:デフォルトの名無しさん
14/02/27 17:34:42.04 .net
Try...パターンがout Exceptionパラメータ持ってくれてたら嬉しかったんだけどなー

428:デフォルトの名無しさん
14/02/27 19:20:00.50 .net
そもそもエラーとは何かって哲学的な問題になる

429:デフォルトの名無しさん
14/02/27 19:21:07.04 .net
何にせよTryParseがあるだけJavaよりマシだろ
あのクソ

430:デフォルトの名無しさん
14/02/27 19:24:03.97 .net
TrayParse、.Net 1.1 とか Compact Framework には存在しないけどな

431:デフォルトの名無しさん
14/02/27 19:32:03.42 .net
>>419
情報集めたり親切なメッセージ作ったりするのにコストがかかるから意味内

432:デフォルトの名無しさん
14/02/27 19:43:53.57 .net
非同期処理なんかだとどう書けばいいか分からずそんな感じになる

433:デフォルトの名無しさん
14/02/27 20:25:49.16 .net
非同期処理だとコールバックの引数に例外渡すことはあるが
outはないだろ

434:デフォルトの名無しさん
14/02/28 01:34:49.92 .net
LeftToRightに設定したFlowLayoutPanel1に画像とラベルを追加して、SetChildIndexで先頭に持って行きたいのですが、

FlowLayoutPanel1.Controls.Add(this.PictureBox[n]);
FlowLayoutPanel1.Controls.Add(this.Label[n]);
FlowLayoutPanel1.Controls.SetChildIndex(this.Label[n], 0);
FlowLayoutPanel1.Controls.SetChildIndex(this.PictureBox[n], 0);

とすると一番最後の FlowLayoutPanel1.Controls.SetChildIndex(this.PictureBox[n], 0); の部分で
「'子'はこの親の子コントロールではありません。」とのエラーがでます。
Labelの方のSetChildIndexではエラーは出ないのですが、どういうことなのでしょうか。

435:デフォルトの名無しさん
14/03/01 01:32:32.90 .net
C++の世界からやって来ました
C#にはC++のsmart_ptrのようなクールななクラスはないのですか?
毎回いちいちusingを書くのはタイピングが面倒ですしネストが無駄に深くなる酷いパターンです
しかしリソースの解放はシビアな課題なのでやる気のないGCには任せられません
我々C++プログラマは楽をしつつリソース解放のタイミングを完全に制御したいのです

436:デフォルトの名無しさん
14/03/01 01:54:44.81 .net
そんなにリソース開放する場面あるか


437:?



438:デフォルトの名無しさん
14/03/01 05:07:44.29 .net
>>427
そんなにメモリ気にするならCでゴリゴリ書けよ。
そんなの自分で制御できないGCに依存するものを選択した時点で間違ってるわ。
そもそもusingって何か理解してるか?

439:デフォルトの名無しさん
14/03/01 05:44:55.75 .net
C、C++の世界に戻るのが吉ですね。

440:デフォルトの名無しさん
14/03/01 07:43:39.31 .net
usingはファイルだとか、描画オブジェクトの開放とか、アンマネージなリソースでしか必要無いぞ。

441:デフォルトの名無しさん
14/03/01 09:12:00.07 .net
RAIIなら意味は通るがスマートポインタとか言ってる時点でレベルが知れるな
スマートポインタはいつ解放すべきか決めるのが難しい時に使うもんで、いわば欠陥の多いGCだ

442:デフォルトの名無しさん
14/03/01 09:22:18.31 .net
Formのレイアウトで、

|ボタン1 ボタン2 ボタン3|

と横一列に並べる
ボタン1,3はサイズ固定、ボタン2はサイズ可変だが最小値あり
加えてこの一行を水平方向にFillしたい場合、どうすればよいでしょうか?

443:デフォルトの名無しさん
14/03/01 09:25:23.52 .net
>>433の補足

|■□■|

|■□□■|
...
|■□□□□□■|

のように、ウィンドウサイズによりボタン2のみサイズを変えたい場合です

444:デフォルトの名無しさん
14/03/01 09:39:06.94 .net
Anchor = Left|Right なPanelに突っ込んで
それぞれのAnchorをLeft, Left|Right, Rightにする
最小値はPanelのMinSizeでも設定すれば

445:デフォルトの名無しさん
14/03/01 09:41:07.26 .net
必ずtry{}finallyブロックがほしいオブジェクトの場合
リソース握ってなくてもIDisposableにする場合あるだろ

ネストが怖くてC#できるかっての

446:デフォルトの名無しさん
14/03/01 09:47:33.40 .net
usingはブロックをネストせずに複数重ねられるし
C++でも細かく寿命を制御したいときにはブロックをネストすることはある

447:デフォルトの名無しさん
14/03/01 10:56:10.59 .net
いいから失せろC++カス

448:デフォルトの名無しさん
14/03/01 14:30:19.31 .net
C言語の次世代って、何?
なんか言ってたよな。立ち読みで日経プログラミングで見たとき。

449:デフォルトの名無しさん
14/03/01 15:05:46.49 .net
アスペ脳の恐怖、まで読んだ。

450:デフォルトの名無しさん
14/03/01 15:07:12.79 .net
Croatia言語の次はRussia言語

451:デフォルトの名無しさん
14/03/01 15:33:58.60 .net
D言語って使っている人いるの?

452:デフォルトの名無しさん
14/03/01 16:12:46.94 .net
C#のここがダメ!俺ならこう!→やっぱり糞だからやめて互換性切るわ
Dはひたすらこれの繰り返しでC#の先見性を証明しただけの言語

453:デフォルトの名無しさん
14/03/01 17:29:55.66 .net
.netなければC#なんて使ってないけどな
後からツギハギしてるだけのC#のどこに先見性があるのかと

454:デフォルトの名無しさん
14/03/01 17:45:07.79 .net
>>444
互換重視の言語がつぎはぎだらけになるのは仕方が無い気もする

455:デフォルトの名無しさん
14/03/01 18:04:39.99 .net
TIOBEで一桁に入って来れない言語がメジャー面すんな
お前よりはC++の方がいいわ

456:デフォルトの名無しさん
14/03/01 20:33:26.59 .net
グローバルマウスカーソルの情報を取得したいと考えています。
具体的には、グローバルマウスカーソルのアイコンが変化したことを確認したいのですが、方法が分かりません。
GetCursorInfoを使えばいいというのはわかったのですが、どういう風にプログラムを組めばよいのか、
サンプルも見つからず困っています。
教えてください。よろしくお願いします。

457:デフォルトの名無しさん
14/03/01 20:45:47.87 .net
>>447
URLリンク(msdn.microsoft.com)

458:デフォルトの名無しさん
14/03/01 21:00:48.59 .net
すいません、さっぱりです
何かいいサンプルはないでしょうか?

459:デフォルトの名無しさん
14/03/01 21:08:28.25 .net
URLリンク(www.atmarkit.co.jp)

URLリンク(www.pinvoke.net)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch