c# - 我如何将类传递给统一的方法?
问题描述
我有一些像这样的 C# 类:
public class Result_Splash
{
public string id;
public string version_code;
public string version_number;
}
public class Link_Splash
{
public int id;
public int app_version_id;
public string link;
public int provider_type;
public int order_download;
public int status;
}
和这样的方法:
public void SomeClassDebug(???)
{
Debug.Log(???);
}
所以,我需要将我的类传递给我的方法并调试他们的领域。可能吗?
解决方案
Debug.Log();
期望一个string
或一个object
(c# 中所有内容的基类)作为参数。如果您传入 an object
,Debug.Log
内部将string
使用ToString
that 的方法自动将其转换为 a object
。
问题是这里应该记录什么?
当然,您可以在类似中定义“临时”,Debug.Log
例如
public void SomeClassDebug(Result_Splash result)
{
Debug.Log(result.id);
}
所以你会看到result.id.ToString()
作为日志的结果。
在我看来,更好的方法是在您的类中实现/覆盖ToString
,以便根据您的需要自定义它将生成的输出。(我很懒,所以我会为小班展示它 - 另一个是你的作业)
public class Result_Splash
{
public string id;
public string version_code;
public string version_number;
public override string ToString()
{
// For example print the values as requested
return $"id: {id}, version_code: {version_code}, version_number: {version_number}";
}
}
我使用了$
字符串插值,这基本上是一种更好的写作方式,例如
return base.ToString() + " id: " + id + ", version_code: " + version_code + ", version_number: " + version_number;
但是您可以使用任何您想要返回的值。
现在你可以简单地做
public void SomeClassDebug(Result_Splash result)
{
Debug.Log(result);
}
当你调用它时,传入该类型的实例
var aResult = new Result_Splash()
{
id = "Hello",
version_code = " ",
version_number = "World!"
};
SomeClassDebug(aResult);
这应该生成一个日志
id: 你好,version_code = , version_number = World!
推荐阅读
- pandas - 如何拆分重复样本以训练没有重叠的测试?
- vue.js - 如何将 Leaflet.MarkerCluster.Freezable 与 vue2Leaflet 一起使用?
- c++ - 为什么不能使用 static_cast 将数组类型的纯右值转换为相同的类型?
- flutter - 手机显示文本大小放大时,应用程序 UI 完全变形 - 无响应
- sql-server - Merge..USING..WHEN PostgreSQL 中的 SQL Server 等效项
- amazon-web-services - CloudFormation 堆栈中多个 Lambda 函数的 CloudWatch 警报
- laravel - Facebook 共享者未共享正确的图像和内容
- azure - 生成 sas 令牌时请求正文太大,超出最大允许限制
- design-patterns - 为什么使用 Gcloud Pub/Sub?
- excel - 如何使用 Excel VBA 单独合并边界之间的行?