Я пытаюсь создать простое приложение 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- Предположим, что у вас есть базовый класс 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 >
, но я всегда думал, что когда нужно преобразовать тип в нечто более конкретное, нужен явный состав.
Возможно, я упускаю что-то простое в моем понимании здесь, но кто-то может помочь мне с моим пониманием вокруг этого.
Спасибо.