A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王继光 高级黑马   /  2012-6-12 13:10  /  1945 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王继光 于 2012-6-12 13:15 编辑

如题,, 例子:
//////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 登陆界面
{
    class UserInfo
    {
        string name;

        public string Name
        {
            get { return name; }      
        }

        string passWord;

        public string PassWord
        {
            get { return passWord; }
            set { passWord = value; }
        }

        public UserInfo(string name)
        {
            this.name = name;
        }

        public UserInfo()
        {
        }

    }
}
////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace 登陆界面
{

    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            UserInfo zsInfo = new UserInfo("admin");
            zsInfo.PassWord = "888888";  
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
///////////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 登陆界面
{
    public partial class Form1 : Form
    {

       private int mistake = 0;

        public Form1()
        {

            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            UserInfo zsInfo = new UserInfo("admin");
            zsInfo.PassWord = "888888";
            
           string getUserName = txtUserName.Text;
            string getUserPassWord = txtPassWord.Text;


            if (getUserName.Equals(zsInfo.Name) && getUserPassWord.Equals(zsInfo.PassWord))
            {
                MessageBox.Show("登陆成功!");
            }
            else
                {
                    mistake++;
                     if ( mistake >= 3)
                     {
                    Application.Exit();
                     }
               
                txtPassWord.Text = "";
                txtUserName.Text = "";
                string strMistake = String.Format("用户名或密码不正确,错误次数为{0},3次错误,程序退出, 请重新输入!", mistake);
                MessageBox.Show(strMistake,
                    "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

                 }

        }
    }
}
///////////////////////////////////////////



假如, 我把  红色 部分  放在  紫色 那里,,,, 那么  蓝色部分 该怎么 访问 zsInfo 这个实例 的值????

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

3 个回复

倒序浏览
放那里,你红色部分的那块就没有实例化了.那就访问不了了.
必须实例化才能使用另一个类的方法和属性,.
好像静态的变量可以直接使用
回复 使用道具 举报
  因为作用域的问题直接访问不了吧,就像你访问不了定义的类中private 修饰的变量一样。要想访问的话得把 变量作用域定义到可以跨类访问的级别。或者给他定义get属性,就像定义类中的一样。
回复 使用道具 举报
赵力 发表于 2012-6-12 17:51
因为作用域的问题直接访问不了吧,就像你访问不了定义的类中private 修饰的变量一样。要想访问的话得把  ...

楼上的2位同学,  大致原理我是清楚的, 我是问 实现方法!!  假如确实有这样的情况发生, 最好的解决方法是什么?   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马