Задать вопрос
  • Можно ли объявлять делегат в одном классе (методы там же), а создавать переменную, присваивать адрес метода, вызывать в другом классе?

    @kttotto
    evgenyt2000, дружище, ни у кого нет времени дебажить твой код. Я могу только взглядом пройтись и указать на замеченные ошибки. Я рабочий человек с почасовой оплатой, повышенной ставкой за переработку и кол-вом работы на год вперед. Ты постишь код, говоря об ошибках, причем ни одного текста ошибки написать не можешь, ни одного скрина или еще чего то. Тратить час на то, чтобы создать проект с твоим кодом и найти в нем ошибку, желания нет, мне за это время заплатят штукарь. Если ты пишешь не в блокноте, то студия укажет тебе все конкретные места ошибок, строку и даже команду. При этом расскажет причину и даже может дать совет как это исправить. Тебе остается только загуглить эту причину или сообщение ошибки. Если проблема с английским, то опять таки есть гугл-переводчик.

    Вы объявили делегат глобально
    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, тщательнее вникните в ООП, а именно полиморфизм и как он реализуется в конкретных задачах. Далее учитесь дебажить, пользоваться инструментами дебага и гуглить те сообщения об ошибках, которые выдает студия. Поверьте, в последнем случае, Вы быстрее решите проблему, чем задавать вопросы на Тостере.
  • Можно ли объявлять делегат в одном классе (методы там же), а создавать переменную, присваивать адрес метода, вызывать в другом классе?

    @kttotto
    evgenyt2000, у Вас делегат объявлен два раза, и глобально, и в классе. Поэтому при создании экземпляра он не понимает на какой ориентироваться. Нужно удалить какой то один. Судя по коду тот, что вверху Вам не нужен. Если же Вы планируете использовать этот делегат где-то еще кроме класса Demo, то оставить надо верхний, но изменить сигнатуру, т.к. сейчас у него сигнатура такова, что он не принимает ни одного параметра. Вы просто вырежте строчку объявления делегата в классе Demo и замените ею верхнюю.
  • Как развиваться начинающему .net core разработчику?

    @kttotto
    Таких вопросов просто жесть сколько, они задаются каждый день в разных интерпретациях. И еще больше ответов на них. Например. Неужели проблема воспользоваться поиском?
  • Как сделать так чтоб не появлялась ошибка CS7036?

    @kttotto
    evgenyt2000, да, Петр, правильно заметил, что у Вас класс родитель не имеет пустого конструктора, значит класс наследник должен обязательно ему дать требуемые параметры.
    spoiler
    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; ;
    	}
    }
  • Опять начал работать не в той ветке?

    @kttotto
    denzago, ну если так ставить вопрос, то это будет из разряда "как сходить поссать, когда ссать хочется и минимизировать издержки".
    Все это минимизируется постоянным повторением, привычкой. Я понимаю, что можно забыть подтянуть изменения, если это первые проекты и руки еще не в курсе что делать. Но если, как Вы говорите, несколько проектов, то тут нескольких дней хватит.
    И вообще, я никого не знаю, кто бы в девелоп сразу работал. Обычно под каждую задачу создаешь ветку от девелопа, в ней работаешь, потом ее уже сливаешь в девелоп. При таком расскладе, все изменения девелопа достаточно подтянуть перед мержем своей фичи.
  • Две и более строки подключения и сессии?

    @kttotto
    Это где то глобально, чтобы в каждом контроллере можно было по номеру сервера получить имя конекшина.
    Можно в сессию, конечно, сразу имя сохранять, но как по мне, это не гибко, привязка к именам сильнее будет. Я бы, наверное, сделал что-то подобное:
    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();
    	}
    }

    Сделал BaseController, в нем все общие методы, а потом каждый контроллер наследовать от BaseController.
  • Две и более строки подключения и сессии?

    @kttotto
    sdfdgfhgfh, Не совсем понимаю проблему. Текущий сервер Вы можете хранить либо в куках на клиенте, либо в сессии. Если в сессии, то при клике на выбор сервера у вас будет запрос на метод
    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]);
  • Как можно записать String в Int с автоматическим упрощением?

    @kttotto
    pavviaz, Здесь нечего выдумывать, в данной задаче реплейсы и регулярки - это в корне не верный подход. Калькулятор по строке выражения - это стандартная задача для начала обучения в любом языке. Дерево строится за один посимвольный проход по строке.
    Посмотрите сюда . Там описан алгоритм, как строится дерево и даже есть код на C#.
    В случае, если у Вас всего 4 операции и нет скобок, то задача обойдется в 10 строк кода. Парсите строку и приводите к массиву ["2", "+", "3", "*", "4", "-", "5", "*", "6" "/", "7", "+", "8"], считается все за один проход.
  • Как можно записать String в Int с автоматическим упрощением?

    @kttotto
    В примитивном варианте будет выглядеть примерно так
    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;
    }
  • Как можно записать String в Int с автоматическим упрощением?

    @kttotto
    pavviaz, да, нужно парсить строку, в нормальном варианте - строить дерево выражений и потом проходясь по дереву, вычислять конечное значение. Если же Вы точно знаете, что это только два числа и одна операция, то достаточно сплитануть по оператору, получите две строки, приводите их к числу и применяете вычисление исходя уже от оператора.
  • По какой причине не работает JS?

    @kttotto
    0xD34F, он его просто не дебажил. Запустил, посмотрел на пустую страницу и сразу на Тостер. А то, что он все изничтожил и отображать нечего, это ж подумать надо.
  • Как можно пробраться к родителям и поставить им свойства в объекте?

    @kttotto
    xXRustamXx, это Вы не внимательно читаете ответ. Дойдите до раздела тут и внимательно его прочтите.
  • Не прохоядт AJAX запросы?

    @kttotto
    jwwwe, если "https: ..." не помогло, то скажите что у Вас под ****.com, домены одинаковые? Если разные, то посмотрите что такое CORS и как он настраивается.
  • Что нужно знать начинающему разработчику asp.net mvc?

    @kttotto
    MAKSIM ISAEV, для джуниора достаточно уметь делать простые запросы и знать виды джойнов. Для этих целей подойдет любой материал, который Вами будет легко восприниматься.
  • Какой выбрать фреймворк для фронтенда?

    @kttotto
    Александр, ну нет фронт фреймворков без js. Фронт фреймворки потому и появились, чтобы предоставить готовую инфраструктуру или апи в зоопарке потребностей html, css, js и так или иначе его работа завязана на js. Если Вы минимизируете, то потребность в фреймворке отпадает и остаются статичные странички, в лучшем случае с серверным рендерингом.
  • Где у меня ошибка в сниппете?

    @kttotto
    martensit, Вы должны понимать зачем нужны коды зарезервированных символов. Именно для того, чтобы зарезервированные символы можно было отобразить как текст. Если Вы вместо " напишете &quot;, то кавычка перестанет быть зарезервированным символом и будет просто текстом.
    Если ' убрать &quot станет частью ссылки

    В этом случае частью ссылки станет одинарная кавычка, которая не нужна. Т.е. нужно убрать либо &quot;, либо заменить ее на нормальную двойную кавычку и убрать одинарную. Но даже в этом случае будет ошибка, т.к. непонятно чего Вы вообще хотите: у window.location есть куча свойств и по видимому строку url надо присвоить одному из них. Например если Вы хотите изменить url в строке браузера то window.location.href='http://site.ru/?u=1&o=2&t=1'
  • Ajax форма не отправляет данные на сервер, почему?

    @kttotto
    Александр Зайцев, Вы ведь делаете запрос со страницы, которая находится на Вашей стороне. Страница, я так предполагаю, в браузере. Сейчас во всех популярных браузерах есть инструменты для разработчика, дебагер страницы (для хрома это вызывается по F12), где можно посмотреть ошибки на самой странице (закладка console), можно посмотреть все запросы (закладка network), можно поставить брейкпоинт в самом клиентском коде (закладка sources).

    В Вашем случае, в первую очередь надо смотреть в консоли, что нет ошибки, затем в нетворк посмотреть какие запросы делает Ваша страница. Если запроса нет вообще, тогда надо смотреть в код, почему он не вызывается. Если запрос есть, то кликнув по нему, посмотреть параметры запроса и ответ от сервера, в нем будет код ответа и если есть ошибка, то и сообщение о причине.