Как собственность, нет, это невозможно. Вы можете создавать методы Get и Set разных типов, но для свойства типы должны быть одинаковыми.
EDIT:
В то время как:
private DateTime m_internalDateTime;
public object DateTimeProperty
{
get { return m_internalDateTime.ToString(); } // Return a string
set { m_internalDateTime = (DateTime)value; } // here value is of type DateTime
}
синтаксически корректен, компилируется и позволяет принимать DateTime в качестве входных данных и возвращать строку, это не будет хорошим планом. Это работает, но заставляет вас и всех, кто получает доступ к этому коду, выполнять ненужную проверку. Кроме того, в будущем он будет уязвим для другого разработчика, который не знает или не понимает неявных правил, для которых вы потеряли безопасность времени компиляции. Кроме того, вряд ли нужно больше кода для создания двух свойств или двух методов, которые решают одну и ту же задачу строго типизированным образом.
Лично я бы порекомендовал использовать два метода (см. Комментарий Джеффа Йейтса для хорошего объяснения причин).
private DateTime m_internalDateTime;
public string GetDateTime()
{
return m_internalDateTime.ToString();
}
public void SetDateTime(DateTime dateTime)
{
m_internalDateTime = dateTime;
}