Я кодирую в C# для группы людей, я разрабатываю подпись методов для кодирования, и мне нужен способ гарантировать, что люди не будут изменять некоторые параметры, которые они получат. Они получают большие структуры, поэтому их отправляют по ссылке, но я хочу, чтобы они потребляли данные без изменения исходных значений. Но поскольку структуры большие, мы не хотим их копировать.Могу ли я запретить пользователям изменять параметры в C#
Мы можем предположить, что они не хотят менять данные, и нам нужно только защитить их от ошибок.
Какие решения предлагает C#?
Вот и пример
Class MyDataBlok {
List<double> samples;
int someParams;
double lots of other params
}
Class MySetOfDataBlock
{
List<MyDataBlock> DataSet;
bool SomeParam;
Double lots of other params;
}
Class MethodsToBeCoded
{
ProcessSetOfData(/*some tag defining data as protected*/ MySetOfDataBlock data)
{
//Here I want code that uses data without modifying data
// nor the content on any data.DataSet[i]
}
}
Вы должны взглянуть на модульное тестирование. – smoksnes
Что ?! 'struct'-экземпляры передаются по значению. В любом случае, я не понимаю вашу проблему. Можете ли вы показать пример кода, который показывает, что вы пытаетесь сделать? – HimBromBeere
Прошу прощения, но ваш вопрос не очень ясен. Вы спрашиваете, как убедиться, что ваши пользователи не изменят значения аргументов, которые они отправляют вашим методам, прежде чем они будут выполнять ваши методы? –