【发布时间】:2014-02-13 23:21:44
【问题描述】:
我正在尝试将以下一段 java 代码转换为 C#,但在需要获取列的数据类型时遇到了问题。我不太确定我将使用的函数或过程调用。
.NET 代码
namespace Workflow.DataTypes
{
[Serializable]
public class DataColumn1
{
private Type _dataTypes = null;
private string _columnName = null;
private string _defaultValue = null;
public DataColumn1(string columnName, Type dataType)
: this(columnName, typeof(string), null)
{
}
public DataColumn1(string columnName, Type dataType, string defaultValue)
{
SetColumnName(columnName);
SetDataType(dataType);
SetDeafultValue(defaultValue);
}
public string GetDefaultValue()
{
return _defaultValue;
}
public bool IsDefaultValueDefined()
{
return _defaultValue != null && _defaultValue.Trim().Length > 0;
}
public void SetDeafultValue(string def)
{
_defaultValue = def;
}
public string GetColumnName()
{
return _columnName;
}
public void SetColumnName(string columnName)
{
this._columnName = _columnName;
}
public Type GetDataType()
{
return _dataTypes;
}
public void SetDataType(Type types)
{
this._dataTypes = _dataTypes;
}
public void SetDataType(string type)
{
try
{
SetDataType(type != null ? typeof (Type) : typeof (string));
}
catch (ArgumentException e)
{
// to do JavaUtils.enumToList(DataTypes.class)
throw new ArgumentException("Unsupported data type: " + type + ". Supported types: " );
}
}
public override string ToString()
{
return GetColumnName() + "[" + GetDataType() + "]" + (IsDefaultValueDefined() ? " (" + _defaultValue + ")" : "");
}
}
}
我正在寻找的只是如何返回列名及其数据类型。感谢您抽出宝贵时间阅读。
【问题讨论】:
-
它应该简单地返回带有数据类型和默认值的列名。您可以忽略 GetName()。在 java 中它会返回数据类型名称,即 string,int 但现在我们可以忽略它了。
-
Java 中
Class.getName()的等价物是 C# 中的Type.FullName。你剩下的问题似乎只是“我如何用另一种语言写这个”,实际上超出了 StackOverflow 的范围。 -
我同意,但这是我已经尝试了近 6 个小时的东西,但没有得到任何结果。因此,我想我应该向专家寻求帮助。
标签: c# java asp.net generics code-conversion