Нет, вы не можете. Самая простая альтернатива - просто написать две перегрузки, по одной для каждого типа. Вы всегда можете извлечь общий код, если хотите избежать повторения:
private static void FieldWriter(attributeType row)
{
FieldWriterImpl(row.id, row.type);
}
private static void FieldWriter(ts_attributeType row)
{
FieldWriterImpl(row.id, row.type);
}
// Adjust parameter types appropriately
private static void FieldWriterImpl(int id, string type)
{
Console.Write(id + "/" + (type ?? "NULL") + "/");
}
В качестве альтернативы, вы могли бы использовать динамическую типизацию, если вы используете C # 4.
(Лучшим решением было бы дать двум классам общий интерфейс, если это возможно, - и переименовать их в соответствии с соглашениями именования .NET одновременно:)
РЕДАКТИРОВАТЬ: Теперь, когда мы увидели, что вы можете использовать частичные классы, вам вообще не нужно, чтобы они были универсальными:
private static void FieldWriter(IAttributeRow row)
{
Console.Write(row.id + "/" + (row.type ?? "NULL") + "/");
}