В c# 3.0 действительно ли возможно добавить неявные операторы к строковому классу?

Судя по формулировке вашего вопроса, у вас больше уравнений, чем неизвестных, и вы хотите минимизировать несоответствия Обычно это делается с помощью линейной регрессии, которая минимизирует сумму квадратов несоответствий. В зависимости от размера данных вы можете сделать это в электронной таблице или в статистическом пакете. R - это высококачественный бесплатный пакет, который выполняет линейную регрессию и многое другое. Существует много линейной регрессии (и много ошибок), но, как это легко сделать для простых случаев. Вот пример R с использованием ваших данных. Обратите внимание, что «tx» - это перехват вашей модели.

> y <- c(-44.394, -45.3049, -44.9594)
> a <- c(50.0, 43.0, 52.0)
> b <- c(37.0, 39.0, 41.0)
> regression = lm(y ~ a + b)
> regression

Call:
lm(formula = y ~ a + b)

Coefficients:
(Intercept)            a            b  
  -41.63759      0.07852     -0.18061  
7
задан Jon Skeet 24 November 2009 в 18:40
поделиться

4 ответа

No, there's no such thing as extension operators (or properties etc) - only extension methods.

The C# team have considered it - there are various interesting things one could do (imagine extension constructors) - but it's not in C# 3.0 or 4.0. See Eric Lippert's blog for more information (as always).

6
ответ дан 7 December 2019 в 01:22
поделиться

Unfortunately C# does not allow you to add operators to any types that you don't own. Your extension method is about as close as you are going to get.

2
ответ дан 7 December 2019 в 01:22
поделиться

То, что вы пытаетесь сделать в своем примере (определение неявной операции из строки в int), недопустимо.

Поскольку операция (неявное ИЛИ явное) может быть определена только в определение класса целевого или целевого класса, вы не можете определять свои собственные операции между типами каркаса.

0
ответ дан 7 December 2019 в 01:22
поделиться

I am thinking your best bet is something like this:

public static Int32 ToInt32(this string value)
{
    return Int32.Parse(value);
}
0
ответ дан 7 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: