Делегаты и безопасность типов в C # [дубликат]

Я обработал их простым кодом. Вы можете скачать рабочую демонстрацию из здесь

. В вашем случае это очень возможно. Я сделаю шаг за шагом, как вы можете загрузить файл на сервер с помощью jQuery AJAX.

Сначала давайте создадим HTML-файл, чтобы добавить следующий элемент файла формы, как показано ниже.

Во-вторых, создайте файл jquery.js и добавьте следующий код для обработки нашего подача файла на сервер

    $("#formContent").submit(function(e){
        e.preventDefault();

    var formdata = new FormData(this);

        $.ajax({
            url: "ajax_upload_image.php",
            type: "POST",
            data: formdata,
            mimeTypes:"multipart/form-data",
            contentType: false,
            cache: false,
            processData: false,
            success: function(){
                alert("file successfully submitted");
            },error: function(){
                alert("okey");
            }
         });
      });
    });

Там вы закончили. Показать еще

19
задан GazTheDestroyer 16 February 2012 в 18:31
поделиться

2 ответа

Джаред, конечно, прав. Чтобы добавить еще пару деталей:

  • Почти никто не использует синтаксис «пропустить список параметров».
  • У нас нет сценария для лямбда, для которого требуется .
  • Функция усложняет разрешение вывода текста и перегрузки и делает более вероятным, что оба будут терпеть неудачу.
  • Какой синтаксис вы хотите использовать для этой функции? Action<int> c = => {}; ??? У меня нет никакого желания сделать => в унарный префиксный оператор.

Итак, с одной стороны, у нас есть список профи:

  • Lambdas чтобы обеспечить совместимость с ненужной функцией C # 2.0, которую вряд ли кто-либо знает или использует - особенность, которая, откровенно говоря, мы бы никогда не сделали в первую очередь

и минусы:

  • реализация усложняет алгоритмы определения вывода и алгоритма с более сложным типом
  • Функция
  • приводит к большему количеству ошибок для пользователей, не имеющих соответствующего усиления в репрезентативной мощности.
  • no очевидно хороший синтаксис

Если бы вам дали список плюсов и минусов, что бы вы сделали? Я надеюсь, что «реализовать функцию» не будет вашим выбором; это не наш.

16
ответ дан Eric Lippert 22 August 2018 в 16:28
поделиться
  • 1
    «Почти никто не использует синтаксис« пропустить список параметров ». & quot; Черт, я даже не знал, что он существует. – BoltClock♦ 16 February 2012 в 18:51
  • 2
    «вряд ли кто-либо знает или использует». ... И все же я видел этот синтаксис для делегатов event , как в button1.Click += delegate { MessageBox.Show("Hello world"); };. Это было даже предложено двумя разными людьми в ответ на вопрос о моем собственном ( stackoverflow.com/questions/7530743/… ). Вы действительно считаете, что это другой случай? – Joshua Honig 16 February 2012 в 18:55
  • 3
    Круто! Кажется, я могу вызвать Эрика Липперта! – Tudor 16 February 2012 в 19:08
  • 4
    @jmh_gr: Это также мой предпочтительный способ предотвратить NullReferenceException при создании полевого события путем инициализации поля поддержки delegate { }. – Ani 17 February 2012 в 01:29
  • 5
    Большое спасибо за подробное объяснение. У меня не было никакого большого стремления к беспроблемным лямбдам, просто неторопливо задаваясь вопросом, почему несоответствие, на которое вы ответили полностью. Благодарю. – GazTheDestroyer 17 February 2012 в 10:37

Это по сути так же просто, как и разные функции с различными наборами поддерживаемых сценариев. Это почти похоже на запрос

Почему лямбды могут быть выражениями, но делегаты могут быть только блоками?

6
ответ дан JaredPar 22 August 2018 в 16:28
поделиться
Другие вопросы по тегам:

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