访问者 - 使用不同的值获取和设置

时间:2015-12-15 02:10:59

标签: c# winforms

我想要值管理员顾问。

extension String {
    func substringsOfLength(length: Int) -> [String] {
        if length < 1 { return [] }

        var result:[String] = []
        let chars = Array(characters)
        for index in 0.stride(to: chars.count, by: length) {
            result.append(String(chars[index ..< min(index+length, chars.count)]))
        }
        return result
    }

    var toUInt8: [UInt8] {
        var result:[UInt8] = []
        let chars = Array(characters)
        for index in 0.stride(to: chars.count, by: 2) {
            let str = String(chars[index ..< min(index+2, chars.count)])
            result.append(UInt8(str, radix: 16) ?? 0)
        }
        return result
    }
}

let input = "friends"
let str2 = input.substringsOfLength(2)  // ["fr", "ie", "nd", "s"]
let str0 = input.substringsOfLength(0)  // []
let str3 = input.substringsOfLength(3)  // ["fri", "end", "s"]

let bytes = "ff107".toUInt8  // [255, 16, 7]

我用于测试的用户是真的,或者是ADM。 SET管理员被分配了一个读者席位

public bool Administrador { get; set; }

在调试中,他将值TRUE平滑地附加到SET ..但是当它出现在下面的代码中时,他进入GET获取值,变量this为FALSE。

Administrador = reader.GetBoolean(4);

1 个答案:

答案 0 :(得分:1)

你没有缩进,你也没有用大括号{ }来约束你的条件,这是你发布的bug的接收。

单独使用缩进,您可以轻松发现问题,即else条件应该在范围内(花括号)

if (conta.Administrador)
{
    if (tabControl1.TabPages[0].Text != "Administrador")
        tabControl1.TabPages.Insert(0, tbpAdministrador);
}
else
    tabControl1.TabPages.RemoveAt(0);

然后你可以修复它

if (conta.Administrador)
{
    if (tabControl1.TabPages[0].Text != "Administrador")
        tabControl1.TabPages.Insert(0, tbpAdministrador);
    else
        tabControl1.TabPages.RemoveAt(0);
}

然后让它变得更漂亮,并且对这些错误免疫,比如:

if (conta.Administrador)
{
    if (tabControl1.TabPages[0].Text != "Administrador")
    {
        tabControl1.TabPages.Insert(0, tbpAdministrador);
    }
    else
    {
        tabControl1.TabPages.RemoveAt(0);
    }
}