我有验证码
signinUser(email: string, password: string) {
return firebase.auth().signInWithEmailAndPassword(email, password)
.then((response) => {
this.router.navigate(['/']);
return firebase.auth().currentUser.getIdToken()
.then((token: string) => {
this.token = token
return token;
})
})
.catch(
error => console.log(error)
);
}
为什么第一个运行并且第二个抛出异常? 为什么选择
//this runs
string[] s_items = {"0","0"};
string s_output = string.Format("{0}{1}",s_items);
//this one throws a exception
int[] i_items = {0,0};
string i_output = string.Format("{0}{1}",i_items);
Format(String, Object)
超载
int[]
Format(String, Object[])
超载
答案 0 :(得分:7)
string[]
可以转换为object[]
,因为它们都是引用类型的数组。并且所有引用都是“相等的”。这是从第一天开始就内置到C#语言中的讨厌的(数组)转换之一,它不应该存在,但是从第一天开始我们就没有泛型和适当的协/逆规则。
int[]
不能转换为object[]
,因为实际上第一个数组中包含的int
不是引用。
答案 1 :(得分:3)