トップページ⇒tech
1001コメント310KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/12/16(木) 18:23:33
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/

■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/

■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。

直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0792デフォルトの名無しさん2011/01/09(日) 20:25:05
>>790
ClickOnce、ただのインストーラーとしても使えるよ。
ZIP で固めたインストーラーとしても配れる。
0793デフォルトの名無しさん2011/01/09(日) 20:59:15
>>1-792
0794デフォルトの名無しさん2011/01/09(日) 21:31:58
ClickOnceとか作るぐらいならWindowsインストーラというかsetupプロジェクトを
もっと実用に耐えるものにして欲しいよな。
0795デフォルトの名無しさん2011/01/09(日) 21:49:13
ユーザーにとってすごく抵抗感が強いClickOnceデプロイメントを
どうしてGoogle Chromeは採用したんだろうね。

すごく抵抗感が強い?何それ妄想?
0796デフォルトの名無しさん2011/01/09(日) 21:53:25
従来のインストーラーだと権限の問題があったり
zipパッケージだと馬鹿にはインストールできなかったりで
落とし所としてはこんなもんじゃねえかなあと思う
0797デフォルトの名無しさん2011/01/09(日) 22:13:37
>>795
Googleがリリースしたのをインストールするのと
そこらのサイトから誰とも知らん人が作ったアプリをインストールするのでは
前提を一にすることはできないのではないか
0798デフォルトの名無しさん2011/01/09(日) 22:21:23
そこらの名も知らぬ馬の骨が作ったアプリでも
ClickOnceではなくインストーラーなら信用できますッ!ってのも大概に頭おかしいだろw
0799デフォルトの名無しさん2011/01/09(日) 22:24:05
つか発行するときにCD-DVDからインストールに指定すればsetup.exeになるだろ
インストーラと何が違うってんだよ
0800デフォルトの名無しさん2011/01/09(日) 22:26:52
ソフトウェア板にインストーラはレジストリが汚れるから嫌ですって言う奴まだ沢山いるからなー。
いつまで9x系の頭してるんだろう。
0801デフォルトの名無しさん2011/01/09(日) 22:33:21
レジストリ汚すのは事実だろ
.NETアプリはレジストリ使わなくなりつつあるけど
0802デフォルトの名無しさん2011/01/09(日) 22:34:03
で、C直下とかにフォルダ掘りまくってディスク汚すんでしょ。
0803デフォルトの名無しさん2011/01/09(日) 22:35:01
なんか、ClickOnceだってインストーラーの一種なのに、
なんでClickOnce VS インストーラーみたいな口調でしゃべってる人いるの?
0804デフォルトの名無しさん2011/01/09(日) 23:34:21
アホの797本人に聞いてください
0805デフォルトの名無しさん2011/01/10(月) 00:41:15
今はなんでもユーザーフォルダに入れるのが流行りだよね
0806デフォルトの名無しさん2011/01/10(月) 01:11:32
e:\Program Files\に入れたいのにcドライブのユーザーフォルダにしか入れられないのはいやん。
OS再インスコしたときにインストールし直すのめんどいしなー。小物アプリはzipで固めてくれたほうが助かる。
0807デフォルトの名無しさん2011/01/10(月) 01:31:28
2行のレスで破綻するとは凄い才能だw
0808デフォルトの名無しさん2011/01/10(月) 01:35:15
システムドライブ以外のところに置きたいって話だろ。破綻してないじゃん。
0809デフォルトの名無しさん2011/01/10(月) 01:37:01
何のスレだか分からない流れだけど、バイナリを[ユーザー名]以下のディレクトリに
ブチ込むインストーラーはないでしょw

>>805の言ってることは(本人が意図しているかどうかは分からないけど)正しいけど、
それって設定ファイルのことでしょ。
0810デフォルトの名無しさん2011/01/10(月) 01:40:02
>>809
ClickOnceがまさしくそうだが
0811デフォルトの名無しさん2011/01/10(月) 01:55:31
>>810
しかしUACみたいな仕組みを作ってまで、不正なプログラムが入らないようにセキュリティー上げているのに
それがウザいからってユーザーディレクトリーにインストールする仕組みを本家が出すってどうなんだろうな
0812デフォルトの名無しさん2011/01/10(月) 01:59:41
>>811
1人のユーザーしか使わないならそのユーザーの許可だけ得られれば問題ないという考え方だろう。
結局UACだってユーザーに判断を委ねてるにすぎないし。
0813デフォルトの名無しさん2011/01/10(月) 02:40:22
>>811
セキュリティ的に問題ないからユーザーディレクトリにインストールできるようにしたんだろ
0814anonymous2011/01/10(月) 02:47:41
ユーザーディレクトリに入れたプログラムが昇格したらえらいことだけどな
0815デフォルトの名無しさん2011/01/10(月) 02:58:07
なんで?
0816デフォルトの名無しさん2011/01/10(月) 03:09:06
管理者権限を要求するインストーラーとClickOnceを並べて
ClickOnceはユーザーディレクトリにインストールするから危険だ って凄い違和感あるんだが
0817デフォルトの名無しさん2011/01/10(月) 08:49:15
全然違和感ないな。
ユーザーフォルダってことは子供がPC触って簡単に
プログラム入っちゃうってことだろ。
0818デフォルトの名無しさん2011/01/10(月) 09:01:17
結局、手間が増えただけで全くセキュリティは上がってないってことだな。
0819デフォルトの名無しさん2011/01/10(月) 09:02:20
入っちゃって何か問題が?
あるとすれば子供よりむしろ管理がめんどくさくなる企業とかの方だろう
0820デフォルトの名無しさん2011/01/10(月) 10:23:03
PCに対するセキュリティとユーザ自信による操作ミスをごっちゃにしてるんだろう

そういやChromeのインストールもユーザーディレクトリだったな
0821デフォルトの名無しさん2011/01/10(月) 11:02:31
他プロセスがHDDにガリガリアクセスしていたら
ループ内でスリープをはさもうかと思ってるんですが
どうやって調査すればいいんでしょうか。
PerformanceCounterでCPU消費率は取れるっぽいんですが
単位時間あたりのHDDへのアクセス量の取り方がよくわかりません。
0822デフォルトの名無しさん2011/01/10(月) 11:16:48
パフォーマンスモニタ使えばPerformanceCounterでどんなのが使えるか簡単に見られるよ
0823デフォルトの名無しさん2011/01/10(月) 12:06:54
ユーザーディレクトリ云々言い出したら有象無象のzipが一番危ないだろw
0824デフォルトの名無しさん2011/01/10(月) 12:37:06
>>822
Disk Read Bytes/secとかを指定すればいいんですかね。。
ちょっと試してみます。
ありがとうございました。
0825デフォルトの名無しさん2011/01/10(月) 12:49:11
>>823
どこにインストールするかは本質的な問題じゃなくて、恐らく>>811が言おうとしたことだと思うが、
OSは「問題の有無を判断すべき(できる)ユーザ」にだけ判断をさせる思想で
作ってあるのに、それと矛盾することをやっていいのかよって話。
0826デフォルトの名無しさん2011/01/10(月) 12:50:42
だったら管理者がポリシーでも設定して置けよボケ
0827デフォルトの名無しさん2011/01/10(月) 12:52:04
http://msdn.microsoft.com/en-us/library/76e4d2xw.aspx
0828デフォルトの名無しさん2011/01/10(月) 13:00:12
パソコンも免許制にして欲しいもんだ。
問題の有無を判断すべき(できる)ユーザがパソコン買えよ。
0829デフォルトの名無しさん2011/01/10(月) 13:05:57
>>825
OSはユーザーの権限内であれば何やってもいいように作ってあるだろ
頭おかしいの?
0830デフォルトの名無しさん2011/01/10(月) 13:06:43
Linuxだって自分のhomeには自由にインストールできるしね
これって特殊か?
自分が物をしらねえだけじゃねーの
0831デフォルトの名無しさん2011/01/10(月) 13:12:39
>>811だってUACが必要な部分までアクセスするようなプログラムじゃなきゃ問題にならねえだろ
何でUACが出るとセキュリティが上がると思ってんの?気分的な問題?
0832デフォルトの名無しさん2011/01/10(月) 13:19:10
>>829
判断力のないユーザーがインストールしたソフトが、そのユーザーが権限もってる
ディスクのデータを全て破壊する物だとしてもか。

頭がオカシイのはどっちだよ。
0833デフォルトの名無しさん2011/01/10(月) 13:20:06
>>832
そんなのどこのOSでも同じだろ
誰の思想なんだよ?お前個人の?
0834デフォルトの名無しさん2011/01/10(月) 13:20:55
>>832
そんなのバッチだって作れるだろwww
0835デフォルトの名無しさん2011/01/10(月) 13:21:57
ディスクのデータを全て破壊する物だとしてもか(苦笑)
0836デフォルトの名無しさん2011/01/10(月) 13:22:47
しかしすげーな
ここまでの馬鹿がClixkOnceに過剰反応していたんだと思うと笑える
0837デフォルトの名無しさん2011/01/10(月) 13:24:04
いつものことだが馬鹿はまだ許せるけど人間的に幼稚な奴は本当嫌だな。

ぞんざいな口調でいきなり人をお前呼ばわりとか、
よくそういうガキ臭い自分自身に耐えられるな。
少しは自尊心ってものがないのかよ。
0838デフォルトの名無しさん2011/01/10(月) 13:25:41
お前こそ、反論できなくなったらいつもそれな。
自尊心に従って失せろカス。
0839デフォルトの名無しさん2011/01/10(月) 13:27:32
噛み付いてるのが例外を握りつぶすちゃんだって今気づいた

281 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/02(木) 00:33:08
馬鹿ばかりで話にならん。

「よく使われる」ことと「意味が明確」なことは全く別の事柄で、
俺は後者について怪しいと言ってるんだけど。

「例外を握り潰す」なんて言い回しに何も疑問も感じない人はプログラマ向いてないと思う。

「握り潰す」ってのは、漠然と「例外を伝達も処理もしないことは悪い」みたいな事を
言わんとしてるんだろうと想像するが。例外に関して重要なことはプログラマがそれをちゃんと
想定しているか否かであって、「握り潰す」かどうかではない。

単にキャッチして伝達も処理もしないことが正常、という場合だってあるのに
「握りつぶす」なんて言い回しを平気で使えるガサツさは俺には理解できない。
0840デフォルトの名無しさん2011/01/10(月) 13:30:27
こういう人です

937 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/17(金) 00:03:51
http://hibari.2ch.net/test/read.cgi/tech/1281236906/123

123 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/29(日) 22:34:35
>>122
頭オカシイのはお前さん。

フリーソフト(だからフリーソフトだ、と言ってるのに「別会社」ってw)なんか
作ったことがない俺でも、文字列リソースをプレーンテキストにしておけば、
プログラマじゃない人にもローカライズ作業を丸投げできることは想像に難くない。

なんでその程度の想像力もない馬鹿なのにそんな偉そうなのか。
それは自分の馬鹿が自覚できないほど頭が悪いからなんだろうな

http://hibari.2ch.net/test/read.cgi/tech/1281236906/180

180 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/30(月) 21:36:49
現実世界の対面のコミュニケーションだと「モジモジ君」なコミュニケーション弱者に限って、
掲示板では面識もない相手をいきなり「お前」呼ばわり。

そういう自分に何も戦慄を感じないなら、立派な廃人だと思うがな。
0841デフォルトの名無しさん2011/01/10(月) 13:31:50
そうか冬休みか
0842デフォルトの名無しさん2011/01/10(月) 13:33:50
http://hibari.2ch.net/test/read.cgi/tech/1281236906/192

192 名前:デフォルトの名無しさん[sage] 投稿日:2010/08/30(月) 21:50:58
そういう発想って「推定有罪」みたいだね。

普通は(その方が便利なものを)禁止する場合に理由が必要だと考えるのじゃないの?
なんで「手を縛るな」というのり理由が必要なの?
よくわからん発想だ。

http://hibari.2ch.net/test/read.cgi/tech/1281236906/289

289 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/02(木) 00:51:22
頑固というのは自分の意見に固執することを言うんだろうが、
自分の「愚見」に固執している奴が相手を指して「お前は頑固だ....」

そういうことばのセンスをしているから「例外を握りつぶす」なんて言い回しに
何も疑問を感じないのだろう。

まあ言葉に対する感受性以前に、自分を棚に上げる自己中心性という要素もある(そちらの方が大きい?)がw

※このスレと相談室に常駐です
※鍵括弧を多用します
※句読点は打つ派です
※○○性という言葉を好みます
※返す言葉がなくなると人格批判を始めます
※普段はいい子ですが、みながわけんじさんみたいに自分を過信する頑固さがあります
0843デフォルトの名無しさん2011/01/10(月) 13:41:43
>>832
パソコンは判断力の無いユーザーが

rd /S /Q %APPDATA%

なんてバッチを実行したら止めてあげないといけないんですかね
正直そこまで面倒見切れないような気がしますが
0844デフォルトの名無しさん2011/01/10(月) 13:45:33
↑みたいなのって「お前あのときの○○だろう」と特定されるとうろたえる
ひ弱な自分自身を語るに落ちてるだけだと思うんだが、頭が悪いから気付かないのなきっと。

ついでに言えば、こんなコピペを何時でも貼れるように用意してる動機って
他人から見ればあまりに見え透いてる(それはまともに反論できないから、
こんなことでしか悔しさを晴らせない)ことも分からないらしい。
0845デフォルトの名無しさん2011/01/10(月) 13:46:31
書き込む前に慌てず騒がずリロードしましょうね
0846デフォルトの名無しさん2011/01/10(月) 13:47:14
>>844
そこまでパターンだよね
0847デフォルトの名無しさん2011/01/10(月) 13:51:01
>OSはユーザーの権限内であれば何やってもいいように作ってある

これはホントどこのOSだろうがその通りだと思うんだけど。
例外さんの見解は違うの?教えてクレクレ。
0848デフォルトの名無しさん2011/01/10(月) 13:52:11
>ディスクのデータを全て破壊する物だとしてもか。
騒いでるやつ馬鹿すぎワロタ
0849デフォルトの名無しさん2011/01/10(月) 13:55:24
喧嘩なら他所でやってくれ
0850デフォルトの名無しさん2011/01/10(月) 13:55:56
セキュリティのどこまでがOSの責任で
どこからがユーザーの責任か区別が付いていないから
こういうトンチンカンなことを言い出す
0851デフォルトの名無しさん2011/01/10(月) 13:56:42
嗤ってるだけです
0852デフォルトの名無しさん2011/01/10(月) 13:57:57
インストールを選択した時点でユーザーの責任なんだから好きな場所にインストールさせろよ
0853デフォルトの名無しさん2011/01/10(月) 14:00:09
今度は「ClickOnceでは好きなところにインストールできないからクソだ」にシフトしたようですね
哀れ過ぎてゾクゾクしますね
0854デフォルトの名無しさん2011/01/10(月) 14:06:45
薬飲んで寝てろ。
0855デフォルトの名無しさん2011/01/10(月) 14:18:18
妄想馬鹿が何でもかんでも噛み付くから運営は全ID表示にしろw
0856デフォルトの名無しさん2011/01/10(月) 15:05:51
運営も凄いアホさを露呈したばかりで、それどころじゃありません。
0857デフォルトの名無しさん2011/01/10(月) 15:52:02
コードが合計何千行とかになって、ホイール回してるだけで指吊りそうになるんですが、
どうしたら良いんですかね
0858デフォルトの名無しさん2011/01/10(月) 15:54:33
指立て伏せ1万回
0859デフォルトの名無しさん2011/01/10(月) 15:55:20
#region使う
ブックマーク使う
アウトライン使う
ファイル分割する

お好きなのでどうぞ
0860デフォルトの名無しさん2011/01/10(月) 15:55:39
つ↓
0861デフォルトの名無しさん2011/01/10(月) 19:52:20
つ↓
0862デフォルトの名無しさん2011/01/10(月) 19:55:45
つPage
 Down
0863デフォルトの名無しさん2011/01/10(月) 21:46:55
>>857
何もしない。諦める
0864デフォルトの名無しさん2011/01/10(月) 21:51:52
>>859
ブックマークか
初めて知った
0865デフォルトの名無しさん2011/01/10(月) 23:08:49
public struct Hoge { public int A;}

class Program{
 static void Main(string[] args)
 {
  Hoge foo = new Hoge();
  Hoge bar = new Hoge();
  foo.A = 0;
  bar = Piyo(foo);
  Console.WriteLine("{0}", bar.A);
 }

 Hoge Piyo(Hoge hoge){
  return hoge.A = 1;
 }
}

とするとエラー型 'int' を型 'ConsoleApplication1.Hoge' に暗黙的に変換できません。
と言われてしまいます
どうしたら良いのでしょうか
0866デフォルトの名無しさん2011/01/10(月) 23:17:13
Hoge Piyo(Hoge hoge){
  hoge.A = 1;
  return hoge;
}

にする
0867デフォルトの名無しさん2011/01/10(月) 23:22:31
外野だがそれで対策してもこんなエラーでるな

>エラー 1
>静的でないフィールド、メソッド、またはプロパティ
> 'ConsoleApplication1.Program.Piyo(ConsoleApplication1.Hoge)'
>で、オブジェクト参照が必要です
クラスで慣れてるのですぐに対策が浮かばねえ

というかなんで値渡しの構造体なんて使うんだろう
0868デフォルトの名無しさん2011/01/10(月) 23:31:05
refでも使えば?
0869デフォルトの名無しさん2011/01/10(月) 23:38:06
OK
分かった
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public struct Hoge { public int A;}
    class Program
    {
        static void Main(string[] args)
        {
            Hoge foo = new Hoge();
            Hoge bar = new Hoge();
            foo.A = 0;
            bar = Piyo(foo);
            Console.WriteLine("{0}", bar.A);
        }
        //
        //staticが必要
        //
        static Hoge Piyo(Hoge hoge)
        {
            hoge.A = 1;
            return hoge;
            //return hoge.A = 1;
        }
    }
}
0870デフォルトの名無しさん2011/01/10(月) 23:50:30
分かってねー
0871デフォルトの名無しさん2011/01/10(月) 23:55:07
>>870
これだろ
http://msdn.microsoft.com/ja-jp/library/s35hcfh7.aspx

あってるんじゃね?

クラスといってもコンソールアプリだからなあ・・・
Piyoメソッドをstaticにすればいいだけじゃないの?
>>867のエラーは

>>865の方は対策してあるし
0872デフォルトの名無しさん2011/01/11(火) 00:35:14
値渡しとか関係ねーw
0873デフォルトの名無しさん2011/01/11(火) 00:36:31
たしか、なんとかを実装すると、ForEachとかで回す事ができるようになるっていうのが
あったんですが、なにでググレばいいっすかね?
0874デフォルトの名無しさん2011/01/11(火) 00:37:59
IEnumerableかもね
0875デフォルトの名無しさん2011/01/11(火) 00:38:47
>>867
class Hoge{
 public string x;
}

class Sample{
static void Main(){
Hoge read = new Hoge();
Hoge write1 = new Hoge();
Hoge write2 = new Hoge();

read.x = Console.ReadLine();
write1 = read;
Console.WriteLine("write1.x:{0}", write1.x);

read.x = Console.ReadLine();
write2 = read;

Console.WriteLine("write1.x:{0}", write1.x);
Console.WriteLine("write2.x:{0}", write2.x);

Console.Read();
}
}
こんな感じで、値が一緒に変化されると困るんです
0876デフォルトの名無しさん2011/01/11(火) 00:38:53
>>873
http://ufcpp.net/study/csharp/st_loop.html#foreach
08778732011/01/11(火) 00:40:58
>>874
thxっす。ぐぐったらでてきました。それっす。

ありがとうございます。
08788732011/01/11(火) 00:42:19
>>876
どうもっす。IEnumなんとかでいけました。

回答どうもっす。
0879デフォルトの名無しさん2011/01/11(火) 00:43:17
参考
ttp://msdn.microsoft.com/ja-jp/library/t51esaeb.aspx
0880デフォルトの名無しさん2011/01/11(火) 00:43:50
>>875 古いグラマーなのかな?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Hoge
    {
        public string x;
    }

    class Sample
    {
        static void Main()
        {
            Hoge write1 = new Hoge();
            Hoge write2 = new Hoge();

            write1.x = Console.ReadLine();
            Console.WriteLine("write1.x:{0}", write1.x);

            write2.x = Console.ReadLine();

            Console.WriteLine("write1.x:{0}", write1.x);
            Console.WriteLine("write2.x:{0}", write2.x);

            Console.Read();
        }
    }
}
0881デフォルトの名無しさん2011/01/11(火) 01:02:32
>>868-869,880
いや、なんというかそれだと考えてる動作を満たせなくて・・・
うまく説明できないので整理して出直してきます

答えてくれてありがとう
0882デフォルトの名無しさん2011/01/11(火) 01:44:37
875の何が問題で
880で何が解決するのか
誰か解説してくれるとありがたい
0883デフォルトの名無しさん2011/01/11(火) 06:15:33
てst
0884デフォルトの名無しさん2011/01/11(火) 14:35:07
>>882
>>875実行してみろ
0885デフォルトの名無しさん2011/01/11(火) 15:19:40
おれもさっぱりわからない。
同じものを参照しといて、同じになるなとはこれいかに。
0886デフォルトの名無しさん2011/01/11(火) 15:24:46
参照型の代入が同じものを参照することになると認識してなかったって話だろ
0887デフォルトの名無しさん2011/01/11(火) 15:27:43
>>885
文章読めよ
>>875は避けたいコードの例だよ

質問主が構造体を利用してreadというワークエリアぽい物を使う意図が
さっぱりわからないので無難な回答として>>880のようなことになってるだけでしょ
.net開発はそれほどやってない人が変なことやってる場合もあるし
開発はそれなりになやってるけど質問する際に全部を明かすわけにもいかないので
こういう歯切れの悪い状態なのかもしれないし
0888デフォルトの名無しさん2011/01/11(火) 15:29:11
エスパーすると、
write1 = read; を write1.x = read.x; と書くか、ICloneableを実装しろ。
0889デフォルトの名無しさん2011/01/11(火) 15:30:18
実装しろ。
0890デフォルトの名無しさん2011/01/11(火) 15:31:32
・・・(´・ω・`)
0891デフォルトの名無しさん2011/01/11(火) 15:51:09
何を勉強すればいいか教えろ

とりあえず薄い入門書を一冊読んだ
0892デフォルトの名無しさん2011/01/11(火) 15:55:26
>>891
どんな本かによる 名前教えて
■ このスレッドは過去ログ倉庫に格納されています