| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:使用线程
只看楼主 加入收藏
huanganjun
Rank: 1
来 自:广东
等 级:新手上路
帖 子:149
专家分:0
注 册:2008-10-15
结帖率:100%
收藏
 问题点数:0 回复次数:6 
使用线程
怎样使用线程,需要导入哪一个包
搜索更多相关主题的帖子: 线程 
2008-10-28 14:15
meining
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-10-27
收藏
得分:0 
要求:定义一个结构体Student,包含一个姓名(字符串类型)和一个幸运日(刚才定
义的LuckDay枚举类型),然后定义一个该结构体的一维数组,但不初始化,
提示用户输入班级人数后再初始化这个数组,然后循环给这个数组的每个元素分
别赋值姓名和幸运日(幸运日的赋值方法同枚举练习题),最后用foreach遍历输
出所有Student结构体变量,最好每行输出一个Student。

  下面是我写的,但是有点问题,希望高手帮忙看下。。。
定义的一个类:
namespace Test2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入学生人数:");
            int count = int.Parse(Console.ReadLine());
            String[] a= new String[count];

            for (int i = 0; i < count; i++)
            {
                Console.Write("请输入第{0}个学生的姓名: ", i + 1);
                a[i] = Console.ReadLine();

                Console.Write("请输入第{0}个学生的幸运日: ", i + 1);
                a[i] = Console.ReadLine();
            }
           
            foreach (String disp in a)
            {
                //if (a[i] == 0)
                //{
                //    Console.WriteLine(LuckDay.Sunday);
                //}
                Console.Write("姓名:{0}  ",disp);
                Console.WriteLine("幸运日: {0}  ", disp);
               
            }
        }
    }
}
定义的枚举:
namespace Test2
{
    enum LuckDay
    {
        Sunday=0,
        Monday=1,
        Tuesday=2,
        Wednesday=3,
        Thursday=4,
        Friday=5,
        Saturday=6,
    }
}
定义的结构体:
namespace Test2
{
    struct Student
    {
        ///学生姓名
        
        public String name;
        public LuckDay luckday;
        public String[] strict;
        
        
    }
}
似乎结构体没有什么用。。。
2008-10-28 14:56
sowhat430
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-28
收藏
得分:0 
例:(要导入System.Threading包)

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace AddWithThreads
{
    class AddParams
    {
        public int a;
        public int b;

        public AddParams(int numb1, int numb2)
        {
            a = numb1;
            b = numb2;
        }
    }

    class Program
    {
        public static void Add(object data)
        {
            if (data is AddParams)
            {
                Console.WriteLine("ID of thread in Add(): {0}",
                    Thread.CurrentThread.GetHashCode());

                AddParams ap = (AddParams)data;
                Console.WriteLine("{0} + {1} is {2}",
                    ap.a, ap.b, ap.a + ap.b);
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine("***** Adding with Thread objects *****");
            Console.WriteLine("ID of thread in Main(): {0}",
                Thread.CurrentThread.GetHashCode());

            AddParams ap = new AddParams(10, 10);
            Thread t = new Thread(new ParameterizedThreadStart(Add));
            t.Start(ap);
            
            // Do other work on Main() here.
            Console.ReadLine();
        }
    }
}
2008-10-28 15:38
sowhat430
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-28
收藏
得分:0 
回2楼的:你都没有用结构体。。。。。
下面是我改的,看看是不是你需要的

using System;
using System.Collections.Generic;
using System.Text;

namespace TEMP
{
    enum LuckDay
    {
        Sunday = 0,
        Monday = 1,
        Tuesday = 2,
        Wednesday = 3,
        Thursday = 4,
        Friday = 5,
        Saturday = 6,
    }

    struct Student
    {
            ///学生姓名

       public String name;
       public LuckDay luckday;
       public String[] strict;


    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("请输入学生人数:");
            int count = int.Parse(Console.ReadLine());
            Student[] stu = new Student[count];

            for (int i = 0; i < count; i++)
            {
                Console.Write("请输入第{0}个学生的姓名: ", i + 1);
                stu[i].name = Console.ReadLine();

                Console.Write("请输入第{0}个学生的幸运日: ", i + 1);
                try
                {
                    stu[i].luckday = (LuckDay)Enum.Parse(typeof(LuckDay), Console.ReadLine());
                }
                catch (ArgumentException ae)
                {
                    i--;
                    Console.WriteLine("幸运日输入有误,再重新输入该学员信息");
                }
            }

            foreach (Student disp in stu)
            {
                //if (a[i] == 0)
                //{
                //    Console.WriteLine(LuckDay.Sunday);
                //}
                Console.Write("姓名:{0}  ", disp.name);
                Console.WriteLine("幸运日: {0}  ", disp.luckday);

            }
            Console.ReadLine();
        }
    }

}

[[it] 本帖最后由 sowhat430 于 2008-10-28 16:02 编辑 [/it]]
2008-10-28 15:54
meining
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-10-27
收藏
得分:0 
stu[i].luckday = (LuckDay)Enum.Parse(typeof(LuckDay), Console.ReadLine());


这个什么意思???????

[[it] 本帖最后由 meining 于 2008-10-28 16:15 编辑 [/it]]
2008-10-28 16:09
sowhat430
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-28
收藏
得分:0 
把你输入的字符串,转换为枚举LuckDay
2008-10-28 16:27
meining
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-10-27
收藏
得分:0 
类、静态成员、重载:再添加一个类文件,类名叫Employee(员工)。
    1)类中包含工号私有成员变量和姓名、工资公有成员变量
    2)使工号可以自动增长(提示:定义静态变量)
    3)定义2个构造函数,一个不带任何参数,姓名默认为“匿名”,
工资为1000元;另一个带2个参数,分别初始化姓名和工资,并在其中打印
“新招了一个员工”
    4)定义析构函数,如果这个员工叫“张三”,则在析构函数中打印
“因学艺不精,张三被公司辞退了”
    5)定义打招呼(SayHello)方法,该方法具有多重实现,如果不给
参数调用则显示“你好”,如果给一个字符串参数s则显示s,如果给一个字符
串参数s和一个整形参数t,则将字符串s打印t次
    6)定义一个方法,这个方法不能使用Employee类的对象调用,而是
使用Employee类名来调用,该方法调用后显示目前存在的所有员工的总数。如
已经实例化了三个Employee员工对象,则显示:“你好!目前公司员工总数为:
3 人”(提示:静态函数)
2008-10-28 18:03
快速回复:使用线程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019243 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved