public class Vektor
{
public readonly double x, y, z;
public Vektor(double x, double y, double z)
{
this.x = x;
this.y = y;
this.z = z;
}
//summa
public Vektor Add(Vektor V)
{ return new Vektor(this.x + V.x, this.y + V.y, this.z + V.z); }
//raznost
public Vektor Razn(Vektor V)
{ return new Vektor(this.x - V.x, this.y - V.y, this.z - V.z); }
public double Length()
{ return Math.Sqrt(x * x + y * y + z * z); }
public double Length(Vektor V)
{ return (Math.Sqrt(x * x + y * y + z * z) * Math.Sqrt(x * x + y * y + z * z));}
//skalarnoe proizvedenie
public virtual double Skalar(Vektor V)
{ return x * this.x + y * this.y + z * this.z; }
//umnozenie na skalar a
public double Uskalar()
{
double a = 1;
return a * this.x + a * this.y + a * this.z;
}
//sravnenie
public bool Equals(Vektor V)
{
if (!(V is Vektor))
{ return false; }
return base.Equals(V);
}
public override string ToString()
{
return $"{x} {y} {z}";
}
}
//класс наследник +переопределение
public class Naslednik : Vektor
{
public Naslednik(double x, double y, double z) : base(x, y, z)
{}
public override double Skalar(Vektor V)
{
base.Skalar(V);
return 2*x * this.x + 2*y * this.y + 2*z * this.z; ;
}
}
BaseController: Controller
{
private ConnectionNames = new Dictionary<int, string>
{
{1, "DB1"},
{2, "DB2"},
{3, "DB3"},
}
public string GetConnectionName()
{
var number = HttpContext.Session["CurrentDb"]
return ConnectionNames[number];
}
}
public class CustomController : BaseController
{
public IActionResult GetAnyData()
{
var context = new MyDbContext(GetConnectionName())
return context.MyData.ToList();
}
}
public IActionResult ChangeDb(int numberBd)
{
HttpContext.Session.SetString("CurrentDb", numberDb);
// разлогинили пользователя
// в новом контексте залогинили
return Redirect();
}
public connectionNames = new Dictionary<int, string>
{
{1, "DB1"},
{2, "DB2"},
{3, "DB3"},
}
var currentDb = HttpContext.Session["CurrentDb"];
var context = new MyDbContext(connectionNames[currentDb]);
var t = "10+11"
if(t.Contains("+"))
{
var values = t.Split("+");
var value1 = int.Parse(values[0]);
var value2 = int.Parse(values[1]);
var result = value1 + value2;
return result;
}
if(t.Contains("-"))
{
var values = t.Split("-");
var value1 = int.Parse(values[0]);
var value2 = int.Parse(values[1]);
var result = value1 - value2;
return result;
}
"
напишете "
, то кавычка перестанет быть зарезервированным символом и будет просто текстом.Если ' убрать " станет частью ссылки
"
, либо заменить ее на нормальную двойную кавычку и убрать одинарную. Но даже в этом случае будет ошибка, т.к. непонятно чего Вы вообще хотите: у window.location
есть куча свойств и по видимому строку url надо присвоить одному из них. Например если Вы хотите изменить url в строке браузера то window.location.href='http://site.ru/?u=1&o=2&t=1'
Вы объявили делегат глобально
delegate double Operation(Vector vector);
Это вообще не понятно от куда такое придумали, это бред
Operation oper = new Operation(Add);
Чтобы использовать делегат, надо создать для него переменную
Operation operation;
И уже ей присваивать методы, причем их сигнатура должна совпадать с объявленной, т.е. (double Operation(Vector vector))
operation = Add
В вашем классе Demo нет методов Add и Razn, откуда они возьмутся вот здесь
new Operation(Add) и oper = Razn
Получить доступ к этим методам можно только через экземпляр класса Vector
operation = a.Add;
operation(new Vector(1,1,1))
Судя по Вашим попыткам, могу судить , что Вы хотите реализовать что-то похожее на стратегию (на паттерн "стратегия"). Мои рекомендации: прежде, чем писать код, прочитайте хоть какие то учебники по .net, тщательнее вникните в ООП, а именно полиморфизм и как он реализуется в конкретных задачах. Далее учитесь дебажить, пользоваться инструментами дебага и гуглить те сообщения об ошибках, которые выдает студия. Поверьте, в последнем случае, Вы быстрее решите проблему, чем задавать вопросы на Тостере.