Skip to content

Instantly share code, notes, and snippets.

@ichiroku11
Created March 7, 2018 07:13
Show Gist options
  • Save ichiroku11/457a247b64d11c1961e013cedb9422bd to your computer and use it in GitHub Desktop.
Save ichiroku11/457a247b64d11c1961e013cedb9422bd to your computer and use it in GitHub Desktop.
Object.ReferenceEqualsの動きを確認する
using System;
using Xunit;
namespace Test {
public class ObjectTest {
[Fact]
public void ReferenceEquals_同じインスタンスならtrue() {
// 同じインスタンスの比較はtrue
var left = new object();
var right = left;
Assert.True(Object.ReferenceEquals(left, right));
}
[Fact]
public void ReferenceEquals_nullとnullならtrue() {
// nullとnullの比較はtrue
Assert.True(Object.ReferenceEquals(null, null));
}
[Fact]
public void ReferenceEquals_あるオブジェクトとnullはfalse() {
// nullとの比較はfalse
Assert.False(Object.ReferenceEquals(new object(), null));
Assert.False(Object.ReferenceEquals(null, new object()));
}
[Fact]
public void ReferenceEquals_値型の比較は常にfalse() {
// ボックス化されるから、値型の比較は常にfalse
Assert.False(Object.ReferenceEquals(1L, 1L));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment