2009-06-04T23:46:34の更新内容

programming/ruby/compare_with_cs/index.wiki.txt

current previous
1,236 1,43
~
${smdncms:keywords,C#,対比,対応,比較,チートシート}
${smdncms:keywords,C#,対比}
~
*C#-Ruby比較早見表
*C#とRubyの対比表
~
C#とRubyの対比・比較表、いわゆるチートシートです。 「C#で言うところの…」と「Rubyで言うところの…」に対応する記述・クラス等を対比表としてまとめたものです。 Rubyスクリプトを書いているときに「C#で言うところのアレはRubyではどう書くんだっけ」ということが多いので、すぐに参照できるようよく使う部分を中心にまとめてあります。
C#とRubyの対比・比較表です。 「C#で言うところの…」と「Rubyで言うところの…」に対応する記述を対比表としてまとめたものです。 Rubyスクリプトを書いているときに「C#で言うところのアレはRubyではどう書くんだっけ」ということが多いので、すぐに参照できるようよく使う部分を中心にまとめてあります。
 

        

        
 
-全般的なこと
-全般的なこと
 
--すべてが完全に一致するものではなく、ある程度似た動作をするものを記述している箇所があります
--すべてが完全に一致するものではなく、ある程度似た動作をするものを記述している箇所があります
 
--引数や記述を一部省略しているので、そういう部分はニュアンスで読んでください
--引数や記述を一部省略しているので、そういう部分はニュアンスで読んでください
 
--メソッドがクラス/インスタンスかどうか(Rubyでは破壊的/非破壊的かどうか)はあまり区別せずに記述しています
--メソッドがクラス/インスタンスかどうか(Rubyでは破壊的/非破壊的かどうか)はあまり区別せずに記述しています
~
--特に対応するものが無い場合は空欄にしてあります
--特に対応するものが無い場合はN/Aと記述してあります
 
-C#について
-C#について
~
--C# 3.0、.NET Framework 2.0(と一部Mono 2.4)をベースに書いています
--C# 3.0、.NET Framework 2.0(と一部Mono 1.2)をベースに書いています
 
-Rubyについて
-Rubyについて
 
--Ruby 1.8をベースに書いています
--Ruby 1.8をベースに書いています
 
-関連するページ
-関連するページ
 
--[[programming/netfx2/System.Text.RegularExpressions]]
--[[programming/netfx2/System.Text.RegularExpressions]]
 
--[[programming/netfx2]]
--[[programming/netfx2]]
 

        

        
+
**基本
+
***エントリポイント・コマンドライン引数
+
#code(cs){{
+
using System;
+

          
+
class HelloWorld {
+
  public static void Main(string[] args) {
+
    Console.WriteLine("Hello, world");
+

          
+
    for {
+
      Console.WriteLine("{0}: {1}", i, args[i]);
+
    }
+
  }
+
}
+
}}
+

          
+
#code(rb){{
+
#!/usr/bin/env ruby
+

          
+
print "Hello, world\n"
+

          
+
ARGV.length.times do |i|
+
  print "#{i}: #{ARGV[i]}\n"
+
end
+
}}
+

          
+
***クラス
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[クラス.aspx]]|[[クラス/メソッドの定義:http://www.ruby-lang.org/ja/man/html/_A5AFA5E9A5B9A1BFA5E1A5BDA5C3A5C9A4CEC4EAB5C1.html]]&br;[[FAQ::クラス、モジュール:http://www.ruby-lang.org/ja/man/html/FAQ_A5AFA5E9A5B9A1A2A5E2A5B8A5E5A1BCA5EB.html]]&br;[[FAQ::メソッド:http://www.ruby-lang.org/ja/man/html/FAQ_A5E1A5BDA5C3A5C9.html]]|
+

          
+
#code(cs){{
+
using System;
+
using System.Collections.Generic;
+

          
+
class SomeClass {
+
  public int[] Values { get; set; }
+

          
+
  private string readOnlyValue;
+

          
+
  public string ReadOnlyValue {
+
    get { return readOnlyValue; }
+
  }
+

          
+
  public SomeClass(string val)
+
  {
+
    readOnlyValue = val;
+
  }
+

          
+
  public IEnumerator<string> GetEnumerator()
+
  {
+
    yield return "foo";
+
    yield return "bar";
+
    yield return readOnlyValue;
+
  }
+

          
+
  public void ForEach(Action<int> action)
+
  {
+
    foreach {
+
      action(val);
+
    }
+
  }
+

          
+
  public override string ToString()
+
  {
+
    return "instance of SomeClass";
+
  }
+

          
+
  public static void Main()
+
  {
+
    var inst = new SomeClass("baz");
+

          
+
    Console.WriteLine(inst);
+

          
+
    inst.Values = new int[] {1, 2, 3};
+

          
+
    foreach {
+
      Console.WriteLine(val);
+
    }
+

          
+
    inst.ForEach(delegate(int val) {
+
      Console.WriteLine(val * 3);
+
    });
+
  }
+
}
+
}}
+

          
+
#code(rb){{
+
class SomeClass
+
  include Enumerable
+

          
+
  @values
+
  attr_accessor :values
+

          
+
  @readonly_value
+
  attr_reader :readonly_value
+

          
+
  def initialize(val)
+
    @readonly_value = val
+
  end
+

          
+
  def each
+
    yield 'foo'
+
    yield 'bar'
+
    yield @readonly_value
+
  end
+

          
+
  def foreach(&b)
+
    @values.each do |val|
+
      yield val
+
    end
+
  end
+

          
+
  def to_s
+
    return 'instance of SomeClass'
+
  end
+
end
+

          
+
inst = SomeClass.new('baz')
+
inst.values = [1, 2, 3]
+

          
+
print "#{inst}\n"
+

          
+
inst.each do |val|
+
  print "#{val}\n"
+
end
+

          
+
inst.foreach do |val|
+
  print "#{val * 3}\n"
+
end
+
}}
+

          
+
***コメント
+
#code(cs){{
+
/*
+
 * multiline comment
+
 */
+

          
+
// single line comment
+
Console.WriteLine("Hello, world");
+
}}
+

          
+
#code(rb){{
+
=begin
+

          
+
 multiline comment
+

          
+
=end
+

          
+
# single line comment
+
print "Hello, world\n"
+
}}
+

          
+
***ヒアドキュメント
+
#code(cs,C#){{
+
string str = @"line1
+
line2
+
line3";
+
}}
+

          
+
#code(rb,Ruby){{
+
str = <<END_OF_STR
+
line1
+
line2
+
line3
+
END_OF_STR
+
}}
+

          
+
***コマンドラインでの実行
+
[[Mono C# Shell:http://www.mono-project.com/CsharpRepl]]を使用。
+
#prompt(C#){{
+
$ csharp 
+
Mono C# Shell, type "help;" for help
+

          
+
Enter statements below.
+
csharp> Console.WriteLine("Hello, world"); 
+
Hello, world
+
csharp> quit;
+
null
+
}}
+

          
+
#prompt(Ruby){{
+
$ ruby -e 'print "Hello, world\n"'
+
Hello, world
+
}}
+

          
 
**文字列
**文字列
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.String:http://msdn.microsoft.com/ja-jp/library/system.string(VS.80).aspx]]&br;[[System.Text:http://msdn.microsoft.com/ja-jp/library/system.text(VS.80).aspx]]|[[String:http://www.ruby-lang.org/ja/man/html/String.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
+
|String.IsNullOrEmpty(str)|str.nil? or str.empty?&br;str.to_s.empty?|
+
|String.Length == 0|String.empty?|
+
|String.IndexOf|String.index|
 
|String.StartsWith("foo")|String =~ /^foo/|
|String.StartsWith("foo")|String =~ /^foo/|
 
|String.EndsWith("foo")|String =~ /foo$/|
|String.EndsWith("foo")|String =~ /foo$/|
 
|String.ToUpper, String.ToUpperInvariant|String.upcase|
|String.ToUpper, String.ToUpperInvariant|String.upcase|
 
|String.ToLower, String.ToLowerInvariant|String.downcase|
|String.ToLower, String.ToLowerInvariant|String.downcase|
 
|String.Contains, String.IndexOf != -1|String.include?|
|String.Contains, String.IndexOf != -1|String.include?|
 
|String.Replace("foo", "bar")|String['foo'] = 'bar'|
|String.Replace("foo", "bar")|String['foo'] = 'bar'|
~
||String.sub('foo', 'bar')|
|N/A|String.sub('foo', 'bar')|
 
|String.Replace("foo", "bar")|String.gsub('foo', 'bar')|
|String.Replace("foo", "bar")|String.gsub('foo', 'bar')|
 
|TextReader.ReadLine|String.chomp|
|TextReader.ReadLine|String.chomp|
~
||String.chop|
|N/A|String.chop|
 
|int.Parse|String.to_i|
|int.Parse|String.to_i|
 
|float.Parse|String.to_f|
|float.Parse|String.to_f|
 
|String.Copy(String)|String.dup|
|String.Copy(String)|String.dup|
~
||String.count('foo')|
|N/A|String.count('foo')|
 
|String.Trim|String.strip|
|String.Trim|String.strip|
 
|String.TrimStart|String.lstrip|
|String.TrimStart|String.lstrip|
 
|String.TrimEnd|String.rstrip|
|String.TrimEnd|String.rstrip|
 
|new String('f', n)|'f' * n|
|new String('f', n)|'f' * n|
~
||'foo' * n|
|N/A|'foo' * n|
 
|String.Split|String.split|
|String.Split|String.split|
~
||String.slice|
|N/A|String.slice|
 
|String.Substring(index, len)|String[index, len]|
|String.Substring(index, len)|String[index, len]|
 
|String.Substring(from, to - from)|String[from..to]|
|String.Substring(from, to - from)|String[from..to]|
 
|String.Empty.Equals|String.empty?|
|String.Empty.Equals|String.empty?|
240,58 47,41
 
|Encoding.GetEncoding("shift_jis").GetString(&br;Encoding.Unicode.GetBytes(String))|String.tosjis|
|Encoding.GetEncoding("shift_jis").GetString(&br;Encoding.Unicode.GetBytes(String))|String.tosjis|
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
-
***ヒアドキュメント
-
#code(cs,C#){{
-
string str = @"line1
-
line2
-
line3";
-
}}
-

          
-
#code(rb,Ruby){{
-
str = <<END_OF_STR
-
line1
-
line2
-
line3
-
END_OF_STR
-
}}
-

          
 
**正規表現
**正規表現
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.Text.RegularExpressions:http://msdn.microsoft.com/ja-jp/library/system.text.regularexpressions(VS.80).aspx]]&br;[[.NET Framework の正規表現:http://msdn.microsoft.com/ja-jp/library/hs600312(VS.80).aspx]]|[[Regexp:http://www.ruby-lang.org/ja/man/html/Regexp.html]]&br;[[正規表現:http://www.ruby-lang.org/ja/man/html/_C0B5B5ACC9BDB8BD.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|Regex.IsMatch, Regex.Match|=~ /.../|
|Regex.IsMatch, Regex.Match|=~ /.../|
 
|Regex.Matches|String.scan(Regexp)|
|Regex.Matches|String.scan(Regexp)|
+
|match = Regex.Match(str)|match = /.../.match(str)|
 
|Regex.Replace(String, 'foo')|String.gsub(Regexp, 'foo')|
|Regex.Replace(String, 'foo')|String.gsub(Regexp, 'foo')|
 
|Regex.Replace(String, 'foo', 1)|String.sub(Regexp, 'foo')|
|Regex.Replace(String, 'foo', 1)|String.sub(Regexp, 'foo')|
 
|Match.Groups[0]|$&|
|Match.Groups[0]|$&|
 
|Match.Groups[1], Match.Groups[2], Match.Groups[3]...|$1, $2, $3...|
|Match.Groups[1], Match.Groups[2], Match.Groups[3]...|$1, $2, $3...|
 
|Match.Groups[n]|$~[n]|
|Match.Groups[n]|$~[n]|
+
|Match.Groups[n].Captures[m]||
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
~
***キャプチャした文字列の参照
**コレクション
+
C#の
+
#code(cs){{
+
var match = Regex.Match("foo,bar,baz", "((.*?)(?:,|$))*");
+

          
+
Console.WriteLine(match.Groups[2].Captures[0].Value);
+
Console.WriteLine(match.Groups[2].Captures[1].Value);
+
Console.WriteLine(match.Groups[2].Captures[2].Value);
+
}}
+

          
+
に相当するコード。
+
#code(rb){{
+
captures = 'foo,bar,baz'.scan(/(.*?)(?:,|$)/)
+

          
+
print "#{captures[0]}\n"
+
print "#{captures[1]}\n"
+
print "#{captures[2]}\n"
+
}}
+

          
+
**リスト・コレクション
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.Array:http://msdn.microsoft.com/ja-jp/library/system.array(VS.80).aspx]]&br;[[System.Collections.Generic:http://msdn.microsoft.com/ja-jp/library/system.collections.generic(VS.80).aspx]]|[[Array:http://www.ruby-lang.org/ja/man/html/Array.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|new[] {0, 1, 2, 3, 4}|[0, 1, 2, 3, 4]|
|new[] {0, 1, 2, 3, 4}|[0, 1, 2, 3, 4]|
 
|foreach|for item in array|
|foreach|for item in array|
 
|foreach|array.each|
|foreach|array.each|
 
|List[0]|Array.first|
|List[0]|Array.first|
~
|List[List.Count - 1]|Array.last|
|List[List.Length - 1]|Array.last|
~
|List.Count|Array.length, Array.size|
|List.Length|Array.length, Array.size|
~
|List.Count == 0|Array.empty?|
|List.FindAll(delegate(T item) {return item != null;}).Length|Array.nitems|
+
|List.FindAll(Predicate<T>(T item) {return item != null;}).Length|Array.nitems|
+
|List.FindIndex(Predicate<T>(T item)) {...}|Array.index {&#x7c;item&#x7c; ...}|
+
|List.CopyTo, Array.CopyTo|array.dup, array.clone|
 
|Stack.Push, List.Add|Array.push|
|Stack.Push, List.Add|Array.push|
 
|Stack.Pop|Array.pop|
|Stack.Pop|Array.pop|
 
|Queue.Enqueue, List.Insert(0, item)|Array.unshift|
|Queue.Enqueue, List.Insert(0, item)|Array.unshift|
301,22 91,17
 
|List.GetRange(start, length)|Array.slice(start, length)|
|List.GetRange(start, length)|Array.slice(start, length)|
 
|List.RemoveAll(delegate(T item) {return item == 'foo';})|Array.delete('foo')|
|List.RemoveAll(delegate(T item) {return item == 'foo';})|Array.delete('foo')|
 
|List.Sort|Array.sort|
|List.Sort|Array.sort|
+
|List.Sort(Comparison<T>(T x, T y)) {...}|Array.sort {&#x7c;x, y&#x7c; ...}|
 
|List.Contains|Array.include?|
|List.Contains|Array.include?|
 
|List.IndexOf|Array.index|
|List.IndexOf|Array.index|
 
|List.LastIndexOf|Array.rindex|
|List.LastIndexOf|Array.rindex|
 
|List.Reverse|Array.reverse|
|List.Reverse|Array.reverse|
 
|Stirng.Join|Array.join|
|Stirng.Join|Array.join|
 
|List.Sort|Array.sort|
|List.Sort|Array.sort|
~
||Array.uniq|
|N/A|Array.uniq|
~
||Array.flatten|
|N/A|Array.flatten|
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**ハッシュ
**ハッシュ
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.Collections.Generic.Dictionary:http://msdn.microsoft.com/ja-jp/library/xfhwa508(VS.80).aspx]]|[[Hash:http://www.ruby-lang.org/ja/man/html/Hash.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|new Dictionary<string, int>() {{"a", 1}, {"b", 2}, {"c", 3}}|{'a' => 1, 'b' => 2, 'c' => 3}|
|new Dictionary<string, int>() {{"a", 1}, {"b", 2}, {"c", 3}}|{'a' => 1, 'b' => 2, 'c' => 3}|
 
|foreach|for key, val in Hash|
|foreach|for key, val in Hash|
329,15 114,11
 
|Dictionary.ContainsKey|Hash.key?, Hash.has_key?, Hash.include?|
|Dictionary.ContainsKey|Hash.key?, Hash.has_key?, Hash.include?|
 
|Dictionary.ContainsValue|Hash.value?|
|Dictionary.ContainsValue|Hash.value?|
 
|Dictionary[key], Dictionary.TryGetValue(key, out value)|Hash.fetch(key), Hash[key]|
|Dictionary[key], Dictionary.TryGetValue(key, out value)|Hash.fetch(key), Hash[key]|
~
||Hash.key(value)|
|N/A|Hash.key(value)|
~
||Hash.merge(hash)|
|N/A|Hash.merge(hash)|
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**日付と時刻
**日付と時刻
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.DateTime:http://msdn.microsoft.com/ja-jp/library/system.datetime(VS.80).aspx]]|[[Time:http://www.ruby-lang.org/ja/man/html/Time.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|DateTime.Now|Time.now|
|DateTime.Now|Time.now|
 
|DateTime.Ticks,.TotalSeconds|Time.tv_sec|
|DateTime.Ticks,.TotalSeconds|Time.tv_sec|
353,18 134,14
 
|DateTime.DayOfWeek|Time.wday|
|DateTime.DayOfWeek|Time.wday|
 
|DateTime.DayOfYear|Time.yday|
|DateTime.DayOfYear|Time.yday|
 
|DateTime.ToString("z")|Time.zone|
|DateTime.ToString("z")|Time.zone|
~
||Time.usec|
|N/A|Time.usec|
~
|DateTime.Millisecond||
|DateTime.Millisecond|N/A|
 
|DateTime.Now.ToString("ddd, d MMM yyyy HH:mm:ss", CultureInfo.InvariantCulture) + " " + &br;DateTime.Now.ToString("zzz", CultureInfo.InvariantCulture).Replace(":", "")|Time.rfc2822, Time.rfc822|
|DateTime.Now.ToString("ddd, d MMM yyyy HH:mm:ss", CultureInfo.InvariantCulture) + " " + &br;DateTime.Now.ToString("zzz", CultureInfo.InvariantCulture).Replace(":", "")|Time.rfc2822, Time.rfc822|
 
|DateTime.Now.ToString("r")|Time.httpdate|
|DateTime.Now.ToString("r")|Time.httpdate|
 
|DateTime.Now.ToString("s")|Time.iso8601, Time.xmlschema|
|DateTime.Now.ToString("s")|Time.iso8601, Time.xmlschema|
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**IOストリーム
**IOストリーム
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.Console:http://msdn.microsoft.com/ja-jp/library/system.console(VS.80).aspx]]&br;[[System.IO.Stream:http://msdn.microsoft.com/ja-jp/library/system.io.stream(VS.80).aspx]]&br;[[System.IO.TextReader:http://msdn.microsoft.com/ja-jp/library/system.io.textreader(VS.80).aspx]]&br;[[System.IO.TextWriter:http://msdn.microsoft.com/ja-jp/library/system.io.textwriter(VS.80).aspx]]|[[IO:http://www.ruby-lang.org/ja/man/html/IO.html]]&br;[[組み込み変数:http://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFCAD1BFF4.html]]&br;[[組み込み関数:http://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|Console.Write|p, print|
|Console.Write|p, print|
 
|Console.WriteLine|print String + "\n"|
|Console.WriteLine|print String + "\n"|
387,10 164,6
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**ファイルシステム
**ファイルシステム
+
|*関連するドキュメント
+
|MSDN/Mono Documentation|Rubyリファレンス|h
+
|[[System.IO:http://msdn.microsoft.com/ja-jp/library/system.io(VS.80).aspx]]&br;[[Mono.Unix.Native:http://www.go-mono.com/docs/index.aspx?tlink=18@N%3aMono.Unix.Native]]|[[File:http://www.ruby-lang.org/ja/man/html/File.html]]&br;[[Dir:http://www.ruby-lang.org/ja/man/html/Dir.html]]&br;[[fileutils:http://www.ruby-lang.org/ja/man/html/fileutils.html]]&br;[[FileTest:http://www.ruby-lang.org/ja/man/html/FileTest.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|File.Exists, Directory.Exists|File.exist?|
|File.Exists, Directory.Exists|File.exist?|
 
|File.Exists|File.file?, FileTest.file?|
|File.Exists|File.file?, FileTest.file?|
398,26 171,25
 
|Path.GetFileName|File.basename|
|Path.GetFileName|File.basename|
 
|Path.GetDirectoryName|File.dirname|
|Path.GetDirectoryName|File.dirname|
 
|Path.GetExtension|File.extname|
|Path.GetExtension|File.extname|
~
|Path.GetFileNameWithoutExtension(path)|File.basename(path, '.*')|
|Path.GetFileNameWithoutExtension|N/A|
 
|Path.GetFullPath|File.expand_path|
|Path.GetFullPath|File.expand_path|
 
|Directory.GetFileSystemEntries(dir)|Dir.entries(path)|
|Directory.GetFileSystemEntries(dir)|Dir.entries(path)|
 
|Directory.GetFileSystemEntries(dir, pattern)|Dir.glob(pattern)|
|Directory.GetFileSystemEntries(dir, pattern)|Dir.glob(pattern)|
~
|Directory.GetFiles(dir, pattern, SearchOption.TopDirectoryOnly)|Dir.glob("#{dir}/*/#{pattern}")|
|N/A|File.split|
+
|Directory.GetFiles(dir, pattern, SearchOption.AllDirectories)|Dir.glob("#{dir}/**/#{pattern}")|
+
||File.split|
 
|File.Copy|FileUtils.cp, FileUtils.cp_r, FileUtils.copy|
|File.Copy|FileUtils.cp, FileUtils.cp_r, FileUtils.copy|
 
|File.Delete|File.delete, File.unlink, FileUtils.rm|
|File.Delete|File.delete, File.unlink, FileUtils.rm|
 
|File.Move|File.rename|
|File.Move|File.rename|
 
|FileStream.SetLength|File.truncate|
|FileStream.SetLength|File.truncate|
 
|FileInfo.Length|File.size|
|FileInfo.Length|File.size|
~
|Directory.CreateDirectory|Dir.mkdir, FileUtils.mkdir(親ディレクトリが無い場合は失敗)&br;FileUtils.mkdir_p, FileUtils.makedirs(親ディレクトリも含めて作成)|
|Directory.CreateDirectory|Dir.mkdir,FileUtils.mkdir|
-
|N/A|FileUtils.mkdir_p|
 
|Directory.Delete|Dir.rmdir, FileUtils.rm_r|
|Directory.Delete|Dir.rmdir, FileUtils.rm_r|
 
|File.GetLastAccessTime, Directory.GetLastAccessTime|File.atime|
|File.GetLastAccessTime, Directory.GetLastAccessTime|File.atime|
~
||File.ctime|
|N/A|File.ctime|
 
|File.GetLastWriteTime, Directory.GetLastWriteTime|File.mtime|
|File.GetLastWriteTime, Directory.GetLastWriteTime|File.mtime|
~
|File.GetCreationTime, Directory.GetCreationTime||
|File.GetCreationTime, Directory.GetCreationTime|N/A|
~
||File.identical?|
|N/A|File.identical?|
~
||FileUtils.touch|
|N/A|FileUtils.touch|
 
|Directory.SetCurrentDirectory, Environment.CurrentDirectory|Dir.chdir, FileUtils.cd|
|Directory.SetCurrentDirectory, Environment.CurrentDirectory|Dir.chdir, FileUtils.cd|
 
|Directory.GetCurrentDirectory, Environment.CurrentDirectory|Dir.pwd, Dir.getwd, FileUtils.pwd|
|Directory.GetCurrentDirectory, Environment.CurrentDirectory|Dir.pwd, Dir.getwd, FileUtils.pwd|
 
|new FileInfo, new DirectoryInfo, Mono.Unix.Native.Syscall.stat(Mono.Posix.dll)|File.stat|
|new FileInfo, new DirectoryInfo, Mono.Unix.Native.Syscall.stat(Mono.Posix.dll)|File.stat|
430,10 202,6
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**数値演算
**数値演算
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.Math:http://msdn.microsoft.com/ja-jp/library/system.math(VS.80).aspx]]&br;[[System.Double:http://msdn.microsoft.com/ja-jp/library/system.double(VS.80).aspx]]|[[Math:http://www.ruby-lang.org/ja/man/html/Math.html]]&br;[[Float:http://www.ruby-lang.org/ja/man/html/Float.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|Math.Pow(3, 2)|3 ** 2|
|Math.Pow(3, 2)|3 ** 2|
 
|Math.E|Math::E|
|Math.E|Math::E|
453,9 221,6
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**プロセス
**プロセス
+
|MSDN|Rubyリファレンス|h
+
|[[System.Diagnostics.Process:http://msdn.microsoft.com/ja-jp/library/system.diagnostics.process(VS.80).aspx]]|[[Process:http://www.ruby-lang.org/ja/man/html/Process.html]]&br;[[組み込み関数:http://www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html]]&br;[[open3:http://www.ruby-lang.org/ja/man/html/open3.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|Process.Start("echo 'hoge'")|system("echo 'hoge'")|
|Process.Start("echo 'hoge'")|system("echo 'hoge'")|
 
|Process.Start("echo 'hoge'", ProcessStartInfo.RedirectStandardOutput)|str = `echo 'hoge'`|
|Process.Start("echo 'hoge'", ProcessStartInfo.RedirectStandardOutput)|str = `echo 'hoge'`|
465,10 230,6
 
|C#|Ruby|f
|C#|Ruby|f
 

        

        
 
**スレッド
**スレッド
+
|*関連するドキュメント
+
|MSDN|Rubyリファレンス|h
+
|[[System.Threading.Thread:http://msdn.microsoft.com/ja-jp/library/system.threading.thread(VS.80).aspx]]|[[Thread:http://www.ruby-lang.org/ja/man/html/Thread.html]]|
+

          
 
|C#|Ruby|h
|C#|Ruby|h
 
|Thread.Sleep(1)|sleep(0.001)|
|Thread.Sleep(1)|sleep(0.001)|
 
|Thread.Sleep(1000)|sleep(1)|
|Thread.Sleep(1000)|sleep(1)|