Не определяйте столбец или оценивайте при вставке, и значением constaint ПО УМОЛЧАНИЮ заменят отсутствующее значение.
я не знаю, как это работало бы в таблице отдельного столбца. Я имею в виду: это было бы, но это не будет очень полезно.
Если вы не хотите делать SynchRequestInfo
универсальным, можете ли вы создать неуниверсальный базовый класс для ClientRequestInfo
? -
public abstract class ClientRequestInfo
{
public abstract void NonGenericMethod();
}
public class ClientRequestInfo<K, V> : ClientRequestInfo
{
public override void NonGenericMethod()
{
// generic-specific implementation
}
}
Затем:
public class SynchRequest
{
private ClientRequestInfo info;
private SynchRequest(ClientRequestInfo requestInfo)
{
this.info = requestInfo;
}
public void Execute()
{
// ADDED: for example
info.NonGenericMethod();
}
}
The class has to be generic if you want generic member variables.
private ClientRequestInfo<????,?????> info;
Is a generic member.
You can use a non-generic base class or interface:
class ClientRequestInfo<K,Y> : IClientRequestInfo
But in your example, ClientRequestInfo doesn't have any non-generic members, so the interface/base class would be empty and have to be casted to the correct generic version to be useful anyway.
У вас есть два варианта, если вы не хотите делать SynchRequestInfo универсальным.
В этом случае я бы предпочел интерфейсный подход, так как вы можете захотеть синхронизировать другие типы (отдельно от клиентских запросов) в будущем.
Заставить ClientRequestInfo (K, V) реализовать интерфейс ClientRequestInfo с функциями интерфейса, которые потребуются SynchRequest.