トップページ⇒tech
963コメント280KB

C♯相談室 Part5

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯NGNG

   ∧_∧____
  /(#゚ー゚) ./\
/| ̄∪∪ ̄|\/    C#,.NET関連の話題はこちらでどうぞ。
  |____|/
   ,,,,∪∪,,, ,,


過去スレ・関連リンクは>>2-10あたり
0153デフォルトの名無しさんNGNG
>>150
144の例は明らかに参照型だからジャン。
あれはただの代入だよ。
0154デフォルトの名無しさんNGNG
レスthx. 説明が足りなかったので自分が悪いのですが、求めているものと微妙に違うようです。
DelphiのMemoのLinesプロパティはAddしたときに自動的にstring配列を拡張してくれるので、
それに近いものをさがしているのでした。

現在のLinesより一つ大きいstring[]を確保して、そこにLinesをコピーして、そのあと参照先を変えるってのが
正攻法なんでしょうか?
0155デフォルトの名無しさんNGNG
あ、>>154は>>152に対するものです。すんまそ。
0156デフォルトの名無しさんNGNG
>>153
へ?
string s; s = "age";
は
string s = new String("age");
ってな意味だよ。代入じゃありませんよ。もちろんnew Stringはコンパイルできませんけどね。
immutableの意味がわかってませんね?
0157デフォルトの名無しさんNGNG
>>154
textBox1.AppendText("\r\nほげほげ");

こういう感じでいいんじゃないの?
0158デフォルトの名無しさんNGNG
すんませんが・・・

DirectoryInfo dir = new DirectoryInfo(@"\\Server-1\test");
この引数の頭についてる@はなんですか?
0159さっき誤爆しちまったかも・・・NGNG
>>156
(´ー`)。o○(あんたほんとにimmutableわかってる?)
0160デフォルトの名無しさんNGNG
>>159
あー、わかってるよ。一度作ったら中身が不変だってことだ。
だから、一見中身が変えられているような次のコード
string s = "age"; s = "sage";
は実は新しいstring(sage)を作って、sの参照先を変えているだけだってことだ。

これは型が参照型かどうかとは関係ない。不変の値型だってつくれるぜ。意味ないけど。

それじゃ応用問題だ。stringが不変であるメリットは何だ?ヒントはすでに
おれが言った。
0161デフォルトの名無しさんNGNG
(´ー`)。o○(開発者側のメリットなんてないよ)
0162デフォルトの名無しさんNGNG
>>160
・・・アフォ?
s = "sage";がsの参照先を変えるのはsが参照型だからだぞ?

> それじゃ応用問題だ。stringが不変であるメリットは何だ?

はぁ?何で俺がそんな事に答えにゃならんのよ。┐(´ー`)┌
あえて言うならそれはメリットがあるからじゃなくて必要条件だったからなんだがな。
0163デフォルトの名無しさんNGNG
>>158
@がないと
DirectoryInfo dir = new DirectoryInfo(@"\\\\Server-1\\test");
と書かなきゃいけないから。
0164デフォルトの名無しさんNGNG
>>163
@消し忘れ。
0165デフォルトの名無しさんNGNG
>>164
あ、しまった。ごめんなさい。
0166デフォルトの名無しさんNGNG
JavaからC#に引っ越してきたものなんですけど
ソーリューションって言う概念や単位?がいまいちわからんです
0167デフォルトの名無しさんNGNG
>>161
そう思う?ならどうしてstringは不変でStringBuilderなんちゅうクラスを作ったんだろ。
Javaにも同じ関係があるよね。おっと、たとえばパフォーマンスなんてのは
開発者のメリットじゃないって言いたい?

>>162
>s = "sage";がsの参照先を変えるのはsが参照型だからだぞ?
お前は参照型のオブジェクトとオブジェクトへの参照の区別がついてないな。
やり直し。

>あえて言うならそれはメリットがあるからじゃなくて必要条件だったからなんだがな。
なんで必要条件なんだよ。string(もどき)が不変じゃない言語なんていくらでもあるぞ。

開発するならこういうこと知っておいたほうがいいと思うんだけどなぁ。
しょせん小手先テクニックの魅力には勝てないか、こういう話題は。
0168デフォルトの名無しさんNGNG
Dr.GUIでも読んで頭冷やせよ。┐(´ー`)┌
0169デフォルトの名無しさんNGNG
>>166
プロジェクトってのが、実行単位というか、出力単位というか、
1つのEXEやDLL,Webサービスのことで。
ソリューションってのはそれをひとまとめにしたものかなぁ。

製品が複数のEXEやDLLからなってることもあるでしょ。
この製品がソリューションで、
EXEやDLLがプロジェクト。
0170デフォルトの名無しさんNGNG
>>169
なるほど、ありがと
0171koubou�VNGNG
C#ってなんて読むのが正しいんですか??
0172デフォルトの名無しさんNGNG
拡張子が.csですので、シーシャープで宜しいかと思います。
0173koubou�VNGNG
シーシャープでいいらしい(調べたところによると
しかしなぜシャープでないのにシーシャープ
#もシャープ(♯)なのか・・・・・(意味不明
0174デフォルトの名無しさんNGNG
>>173
気づかなかったYO!
#と♯って別物だったんだ・・・
0175koubou�VNGNG
>>172
すいません。文読む前にヘンなこと言っちゃいました。
ほんとすいません。

どうもありがとうございます。
0176デフォルトの名無しさんNGNG
房らしい疑問だな
0177koubou�VNGNG
出直してきます・・・・(鬱
0178デフォルトの名無しさんNGNG
>>157
望む動作になりました。どうもです。

TextBoxのLinesプロパティがただのstring[]なのは理由があるんですかね?
自分の愚考ではVectorとか(Delphiの)TStringListみたいにしておいたほうが便利な気がするんですけど。
0179デフォルトの名無しさんNGNG
なんでもかんでもDelphiと比較すんなや
0180デフォルトの名無しさんNGNG
>>179
ごめん。Del経験者だとついDelのクラス名から機能を推測したりするのよ。
ヘジさんがかかわってるだけあって? かなりVCLに似てるもんで。
どっちが優れているとかは考えてもしょうがないんで、他意はないです。
0181デフォルトの名無しさんNGNG
  ,.-''"¨ ̄¨`' ‐ 、
 (,,(,,i,,,i,,,,,,,,i,,,,i,,),,)
    )  (       
    ( #゚ー゚) < いっちゃえ!
0182デフォルトの名無しさんNGNG
C#スタンダードかてきたー。
ヘタレプログラマーの俺も、ついにC#使いに。
よろすく。
0183デフォルトの名無しさんNGNG
age
0184デフォルトの名無しさんNGNG
DirectoryInfo.CreateSubdirectory が IOException を catch
しないんですが・・・

try
{
testdir.CreateSubdirectory("Test");
testdir.CreateSubdirectory("Test2");
}
catch(IOException e)
{
Console.WriteLine(e.Message);
}
としててTestもTest2も存在してるんですけど
0185デフォルトの名無しさんNGNG
今までVBしかやってなかったんだけど、
C# ムズい…
0186184NGNG
Exceptionしてみたけどなんも拾わない・・
ダレカタスケテー
0187184NGNG
報告
ディレクトリ名を長くしたところPathTooLongException は catch できました
他のはやっぱり拾わないですね
ドキュメントの例外のところにIOExceptionやArgumentExceptionも
記載されてるので拾うと思ったのですが
0188デフォルトの名無しさんNGNG
NET SDkのCLRのリファレンスが見れない。
開こうとすると「インストールします」とかいってででくる。
そんでできない。
全インストールしたんだけど??。
0189デフォルトの名無しさんNGNG
もしかしてこのスレ死んでる?
0190デフォルトの名無しさんNGNG
C#は死にました。
0191デフォルトの名無しさんNGNG
>>188
オフィス入れてる?
0192184NGNG
シンデルッポイネ・・・
未だに俺はエラーチャッチできないし
と言うかスローされて無いっぽい・・・どうするべ
>>188
トピックの階層はどこですかね
0193デフォルトの名無しさんNGNG
>>184 よく読め
解説
path の一部が無効でない限り、path に指定したすべての
ディレクトリが作成されます。path パラメータでは、ファイル
パスではなく、ディレクトリ パスを指定します。
既存のサブディレクトリがある場合は、このメソッドは何も実行しません。

DirectoryInfo di = new DirectoryInfo("TempDir");
 if (di.Exists == false)
 di.Create();
これでいいんじゃないか?
0194188NGNG
リファレンス->クラスライブラリ
以下全部です。
0195188NGNG
reinstしたら直りました
0196デフォルトの名無しさんNGNG
>>184
ちなみに存在しないDirectoryInfoのオブジェクトに対して
CreateSubdirectoryを読んだときにだけIOExceptionを投げるみたい。
0197184NGNG
>>193 196
どもすまんです

つまりDirectoryInfo自体が無効でないとIOExceptionやArgumentException
を投げないと言うことですかね?
とすると単純にディレクトリの存在をIOExceptionで確認することはできないわけですね
ArgumentExceptionはどうしよう
0198デフォルトの名無しさんNGNG
C#の#って+が4つってこと?
C++++ってこと?
0199デフォルトの名無しさんNGNG
C♯==D(elphi)♭
0200デフォルトの名無しさんNGNG
>>197
いろいろ試してみたけど、
・DirectoryInfoのコンストラクタやCreateSubdirectoryメソッドに対して
ファイルシステムと矛盾するようなディレクトリ名の指定
  ArgumentException
・指定したディレクトリに対して同名のファイルがある場合
  IOException

こんな感じかな?
おとといから.netを始めたばっかだから間違ってるかもしれないけど
0201デフォルトの名無しさんNGNG
>>197
存在チェックなら、DirectoryInfoのExistsがあるのだからいいんじゃない?
0202デフォルトの名無しさんNGNG
俺もIOExceptionやArgumentExceptionがスローされない
ドキュメントにも
既存のサブディレクトリがある場合は、このメソッドは何も実行しません。
とあるのでスローもしないのだと思うが
例外の欄に
IOException
path に指定された名前のファイルまたはディレクトリが既に存在しています

とある理由がわからない
ま、判定にはCreateSubdirectoryは使うなという事なのかもしれんが

ArgumentExceptionに関しては実際無効な名前でテストしてみると(/を入れてみた)
ディレクトリは作成されないがスローもされずに最後まで走る

おれもC#初心者なんだけどね
分けわからんですな
もう少しこの辺をいろいろ試してみる
0203デフォルトの名無しさんNGNG
>>202
作ろうとしているサブディレクトリと同名のファイルが既に存在する場合は、
例外がスローされるね。
0204デフォルトの名無しさんNGNG
>>203
だね これはこれで実際同ディレクトリ内に作成不可なので
スローされていいわけですな

ということはドキュメントの
path に指定された名前のファイルまたはディレクトリが既に存在しています
と言う部分はCreateSubdirectoryに関しては
path に指定された名前のファイルが既に存在しています
と解釈すればいいと言うことかな
0205デフォルトの名無しさんNGNG
Directory.CreateDirectoryのほうのIOExceptionもスロー条件は同じ
しかしドキュメントは更に謎
path によって指定されたディレクトリが、読み取り専用であるか、空ではありません。
だってさ
ためしに指定するパスのディレクトリを存在させて読取専用属性をつけてみた
IOExceptionどころかどの例外もスローされずにコードが走りました
対象のディレクトリはそのまま
0206デフォルトの名無しさんNGNG
分からないことがあったらsscliのソースを読むのが近道。
0207デフォルトの名無しさんNGNG
System.IOならsscliに頼らずとも.NET Frameworkのソースがほぼ読めるという罠
0208デフォルトの名無しさんNGNG
うむ ドキュメントおかしすぎ
C# または C++ の場合:

Directory::CreateDirectory("Public\\Html");


だってさ
0209デフォルトの名無しさんNGNG
ドキュメントよりもソースを信じよう。
0210デフォルトの名無しさんNGNG
原文もそうなのか、誤訳なのかどちらだろうね。
0211デフォルトの名無しさんNGNG
原文。
http://msdn.microsoft.com/library/?url=/library/en-us/cpref/html/frlrfSystemIODirectoryInfoClassCreateSubdirectoryTopic.asp?frame=true
0212デフォルトの名無しさんNGNG
A file or directory
原文もそのままっぽいね
0213デフォルトの名無しさんNGNG
ドキュメントのフィードバックする人ってどれくらいいるのだろう
0214デフォルトの名無しさんNGNG
In C# or C++:
Directory::CreateDirectory("Public\\Html");

こういう間違いって見てマジ萎える

0215デフォルトの名無しさんNGNG
STLの<algorithm>みたいなのってありませんか?
0216デフォルトの名無しさんNGNG
C#でメッセージループみたいな物を書くにはどうしたらいいですか?
ウインドウ開いてもすぐに終了しちゃうんですが
0217デフォルトの名無しさんNGNG
>>216
激しくガイシュツだが。
[STAThread]
static void Main() {
Application.Run(new Form1());
}
0218デフォルトの名無しさんNGNG
[assembly: 〜]
↑これ、何でしょうか?
.NET SDKのドキュメントのどのセクションを読めばいいのか教えてもらえませんか?
assemblyで検索するとVB.NETのドキュメントしか出てこないので・・・
0219駆け出し初心者NGNG

>>202
気になったので試してみました
論点はズレてるかもしれんが...

using System;
using System.IO;
namespace test{
  class test{
    static void Main(string [] args)
    {
      DirectoryInfo testdir = new DirectoryInfo(".");
      try
      {
        testdir.CreateSubdirectory(args[0]);
      }
      catch(Exception e)
      {
        Console.WriteLine(e.ToString());
      }
    }
  }
}


上のソースをコンパイル後の名前をaとして

C:\>a A/   エラーにらずカレントディレクトリに"C:\A"ディレクトリが作成される。
C:\>a B/B  エラーにらずカレントディレクトリに"C:\B\B"ディレクトリが作成される。

結果を見てみるとUNIXのディレクトリ表記と同じにみえる
結論、.NETはUNIXも当然守備範囲に入れている?

同じく"\"も試してみたが同じ様にサブディレクトリが自動的に作成される。
考えようによっては、楽チンかも
0220デフォルトの名無しさんNGNG
>>218
アセンブリに適用する属性。「属性」とかで引いてみるべし。
0221デフォルトの名無しさんNGNG
>>220
ありが�d調べてみます
0222デフォルトの名無しさんNGNG
Math.Power(double a,double b)は
aのb乗ですが
5の1.5乗っていうのはどういう計算なんですか?
0223デフォルトの名無しさんNGNG
>>222
ぁ?
非自然数の階乗の計算方法がわからないのか?
0224デフォルトの名無しさんNGNG
また階乗かよ・・・(;´Д`)
0225デフォルトの名無しさんNGNG
>>222
中学生からやり直せ
0226デフォルトの名無しさんNGNG
それはC#以前の問題かと
0227デフォルトの名無しさんNGNG
>>223
中学生からやり直せ
0228デフォルトの名無しさんNGNG
∧∧  / ̄ ̄  
(*゚ー゚)< マターリシマショ。
UU  ̄ U U\__  
0229デフォルトの名無しさんNGNG
>>227
?
0230デフォルトの名無しさんNGNG
>>229
累乗
0231202NGNG
>>219
ヒント有難う
というか俺がボケあがってますね
テストに/を使うのがバカでした
/が単純にディレクトリ名に使えないと思いついて試したんです、、、(恥
再度 < や > などで試すとちゃんと ArgumentException がスローされました
これでほぼ問題解決です
0232デフォルトの名無しさんNGNG
教えて下シャア〜
C#のコンパイラは
C言語もできますか?
0233デフォルトの名無しさんNGNG
>>232
何ですか〜?
0234デフォルトの名無しさんNGNG
>>233
多分Visual C#のコンパイラでCのソースもコンパイルできるかどうか聞いているんだと思う。
0235デフォルトの名無しさんNGNG
>>234
なるほど〜

>>232
できませんよ〜CとC#の関係はCとC++の関係とは違いま〜す
似てるようだけど〜全然別の言語だと思ってくださ〜い
0236デフォルトの名無しさんNGNG
>>225,227
累乗も階上もならうの高校だぞ。

>>222
http://www.google.com/search?hl=ja&lr=lang_ja&q=指数関数
0237デフォルトの名無しさんNGNG
Visual Studio.Netはアカデミックパックで大体いくらですか?
0238デフォルトの名無しさんNGNG
知らん。
0239237NGNG
自分で調べました。
0240デフォルトの名無しさんNGNG
書く前に調べようね。
0241237NGNG
自分で調べるんじゃ、質問する意味無いじゃん。
0242デフォルトの名無しさん NGNG
人生って孤独だよな・・・
0243デフォルトの名無しさんNGNG
少し調べれば分かるようなことを聞くな。
0244デフォルトの名無しさんNGNG
http://www.geocities.co.jp/SiliconValley/3657/oshiete.html
0245デフォルトの名無しさんNGNG
少し調べれば分かるかどうかが分からないから聞いてるのだ。
0246デフォルトの名無しさんNGNG
まず少しは調べろよ。

0247237=241NGNG
>>245
おまえ、誰だよ
0248237=245NGNG
>>247
おまえこそ、誰だよ
0249デフォルトの名無しさんNGNG
全然 C# の話題じゃねえな。
0250デフォルトの名無しさんNGNG
>>237
今日、アカデミック買ってきてやったよ。
秋葉のソフマップ1号館では22800円だたよ。
0251デフォルトの名無しさんNGNG
2マンちょっとだったら買える値段だけど、ハードウェアがなあ…;−;
0252デフォルトの名無しさんNGNG
MSDNプロに入ったんだけど、各種ダウンロードできるOSって、
全部CDで送られてくるの?それとも自分でダウンロードしなくちゃ
いけないの?
■ このスレッドは過去ログ倉庫に格納されています