c# - 有出和无出的方法
问题描述
我正在重构相当旧的代码。我有两种实现完全相同逻辑的方法。唯一的区别是 - 一个带有 Out 参数,另一个没有它。我知道我们为什么要使用 out 但有什么办法可以将这两个组合成一个。
public bool Read(string column1, string column2)
{
const int FIRST_COLUMN = 0;
const int SECOND_COLUMN = 1;
string line;
string[] columns;
char[] separator = { '\t' };
line = ReadLine();
columns = line.Split(separator);
if (columns.Length == 0)
{
column1 = null;
column2 = null;
return false;
}
else
{
column1 = columns[FIRST_COLUMN];
column2 = columns[SECOND_COLUMN];
return true;
}
}
public bool Read(out string column1, out string column2)
{
const int FIRST_COLUMN = 0;
const int SECOND_COLUMN = 1;
string line;
string[] columns;
char[] separator = { '\t' };
line = ReadLine();
if (line == null)
{
column1 = null;
column2 = null;
return false;
}
columns = line.Split(separator);
if (columns.Length == 0)
{
column1 = null;
column2 = null;
return false;
}
else
{
column1 = columns[FIRST_COLUMN];
column2 = columns[SECOND_COLUMN];
return true;
}
}
有什么办法可以把它写成一种方法吗?
解决方案
推荐阅读
- r - 如何在 R - 热图中使轴文本更粗体?
- react-native - 排毒测试未打开应用程序,错误:`role=testee not connected, cannot fw action`
- javascript - 如何使用 Mutation Observer 观察父 div 的子 div
- javascript - 推送到二维数组中的对象
- c - 如何打印共享内存中存储的数据?
- python-3.x - Python:从活动窗口外的 HID 设备获取输入?
- postgresql - Postgres - 真空已满
- sql - 如何在 sql (NETEZZA) 中屏蔽帐号
- wpf - 当用户在 RadGridView 中按 Enter 时,防止跳转到下一行
- laravel - 如何设置和身份验证系统允许管理员进入仪表板,以及普通用户访问他的个人资料?