Merge cast with type check

This commit is contained in:
Cinder Biscuits
2020-05-09 08:41:30 -05:00
parent ad32b578d2
commit 823e05df77
23 changed files with 82 additions and 96 deletions

View File

@@ -262,33 +262,33 @@ namespace LitJson
public JsonData (object obj)
{
if (obj is Boolean) {
if (obj is bool b) {
type = JsonType.Boolean;
inst_boolean = (bool) obj;
inst_boolean = b;
return;
}
if (obj is Double) {
if (obj is double d) {
type = JsonType.Double;
inst_double = (double) obj;
inst_double = d;
return;
}
if (obj is Int32) {
if (obj is int i) {
type = JsonType.Int;
inst_int = (int) obj;
inst_int = i;
return;
}
if (obj is Int64) {
if (obj is long l) {
type = JsonType.Long;
inst_long = (long) obj;
inst_long = l;
return;
}
if (obj is String) {
if (obj is string s) {
type = JsonType.String;
inst_string = (string) obj;
inst_string = s;
return;
}
@@ -658,8 +658,8 @@ namespace LitJson
if (obj == null)
return null;
if (obj is JsonData)
return (JsonData) obj;
if (obj is JsonData data)
return data;
return new JsonData (obj);
}

View File

@@ -672,44 +672,44 @@ namespace LitJson
return;
}
if (obj is IJsonWrapper) {
if (obj is IJsonWrapper wrapper) {
if (writer_is_private)
writer.TextWriter.Write (((IJsonWrapper) obj).ToJson ());
writer.TextWriter.Write (wrapper.ToJson ());
else
((IJsonWrapper) obj).ToJson (writer);
wrapper.ToJson (writer);
return;
}
if (obj is String) {
writer.Write ((string) obj);
if (obj is string s) {
writer.Write (s);
return;
}
if (obj is Double) {
writer.Write ((double) obj);
if (obj is double d) {
writer.Write (d);
return;
}
if (obj is Int32) {
writer.Write ((int) obj);
if (obj is int i) {
writer.Write (i);
return;
}
if (obj is Boolean) {
writer.Write ((bool) obj);
if (obj is bool b) {
writer.Write (b);
return;
}
if (obj is Int64) {
writer.Write ((long) obj);
if (obj is long l) {
writer.Write (l);
return;
}
if (obj is Array) {
if (obj is Array array) {
writer.WriteArrayStart ();
foreach (object elem in (Array) obj)
foreach (object elem in array)
WriteValue (elem, writer, writer_is_private, depth + 1);
writer.WriteArrayEnd ();
@@ -717,18 +717,18 @@ namespace LitJson
return;
}
if (obj is IList) {
if (obj is IList list) {
writer.WriteArrayStart ();
foreach (object elem in (IList) obj)
foreach (object elem in list)
WriteValue (elem, writer, writer_is_private, depth + 1);
writer.WriteArrayEnd ();
return;
}
if (obj is IDictionary) {
if (obj is IDictionary dictionary) {
writer.WriteObjectStart ();
foreach (DictionaryEntry entry in (IDictionary) obj) {
foreach (DictionaryEntry entry in dictionary) {
writer.WritePropertyName ((string) entry.Key);
WriteValue (entry.Value, writer, writer_is_private,
depth + 1);