Вход в Facebook без всплывающего окна?

Я пытаюсь создать простое приложение Facebook, но для авторизации кажется, что оно всегда заблокировано блокировщиком всплывающих окон. Таким образом, мой код:

FB.init({
        appId  : THEAPPPIDDDD,
            status : true,
            cookie : true,
            xfbml  : true,
   });


FB.login(function(response) {
           if (response.authResponse) {
               FB.api('/me', function(response) {
               FB.logout(function(response) {
                               console.log('Logged out.');
                           });
                   });
           } else {
               console.log('User did not authorize.');
           }
       });

Любая помощь была бы очень признательна... спасибо

-121--970363- Массив литья по IEnumerable < T > Предположим, что у вас есть базовый класс Employee как таковой: класс Employee {общедоступная последовательность Имя; публичные int Years; публичный струнный отдел; } Затем (в отдельном классе) у меня есть следующий код...

Предположим, что у вас есть базовый класс Employee :

class Employee
{
   public string Name;
   public int Years;
   public string Department;
}

Затем (в отдельном классе) у меня есть следующие фрагменты кода (я думаю, что понимаю все, кроме последнего):

Я считаю, что следующий фрагмент кода работает, потому что инициализатор массива создает массив объектов Employee, которые имеют тот же тип, что и присвоенная ему трудовая переменная.

Employee[] workforceOne = new Employee[] {
   new Employee() { Name = "David", Years = 0, Department = "software" },
   new Employee() { Name = "Dexter", Years = 3, Department = "software" },
   new Employee() { Name = "Paul", Years = 4, Department = "software" } };

У меня есть следующий фрагмент кода. Я считаю, что это работает, потому что массив объектов Employee является реализацией класса Array (), реализующего IEnumerable . Поэтому я полагаю, что именно поэтому массив может быть назначен IEnumerable?

IEnumerable workforceTwo = new Employee[] {
   new Employee() { Name = "David", Years = 0, Department = "software" },
   new Employee() { Name = "Dexter", Years = 3, Department = "software" },
   new Employee() { Name = "Paul", Years = 4, Department = "software" } };

Тогда у меня есть этот фрагмент кода:

IEnumerable<Employee> workforceThree = new Employee[] {
   new Employee() { Name = "David", Years = 0, Department = "software" },
   new Employee() { Name = "Dexter", Years = 3, Department = "software" },
   new Employee() { Name = "Paul", Years = 4, Department = "software" } };

Я не уверен, почему этот фрагмент кода работает? IEnumerable < Employee > наследует от IEnumerable (и переопределяет (или перегружает?) метод GetEnumerator () ), но поэтому не должен мне понадобиться приведение, чтобы вышеуказанное работало как таковое:

//The cast does work but is not required
IEnumerable<Employee> workforceFour = (IEnumerable<Employee>)new Employee[] {
   new Employee() { Name = "David", Years = 0, Department = "software" },
   new Employee() { Name = "Dexter", Years = 3, Department = "software" },
   new Employee() { Name = "Paul", Years = 4, Department = "software" } };

Кажется, что массив быть неявно смещен от типа IEnumerable к IEnumerable < Employee > , но я всегда думал, что когда нужно преобразовать тип в нечто более конкретное, нужен явный состав.

Возможно, я упускаю что-то простое в моем понимании здесь, но кто-то может помочь мне с моим пониманием вокруг этого.

Спасибо.

71
задан Dangerous 6 November 2013 в 10:59
поделиться