I am confusing about using == in (c#)
when I use literal string like here:
object a="hello";
object b="hello";
the comparison a==b will be true.
but when I use object like here:
object c=new StringBuilder("hello").ToString();
object d=new StringBuilder("hello").ToString();
the comparison a==b will be false.
even though a,b,c,d all of type System.Object in compile time and
== operator compare values depends on their values in compile time.
I use extension method to get type of varabiles during compile time:
public static class MiscExtensions
{
public static Type GetCompileTimeType<T>(this T dummy)
{ return typeof(T); }
}
==as reference equality will return false (see stackoverflow.com/questions/1766492/…).Object,stringandStringBuilderare not the same, that's why they have different names. ;)GetCompileTimeTypefor exactly? I don't see how it's relevant to your question