c#程序设计97

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:10:36
程序如下
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Class2
{
delegate double usedelegate(double d1, double d2);
static double multiply(double d1, double d2)
{
return d1 * d2;
}
static double divide(double d1, double d2)
{
return d1 / d2;
}
static void Main(string[] args)
{
usedelegate dg;
Console.WriteLine("输入两个数,用逗号隔开: ");
string str = Console.ReadLine();
int commapos = str.IndexOf(',');
double d1 = Convert.ToDouble(str.Substring(0, commapos));
double d2 = Convert.ToDouble(str.Substring(commapos + 1, str.Length - commapos - 1));
Console.WriteLine("要使它们相乘就输入m,要使它们相除就输入d: ");

int commapos = str.IndexOf(','); //这一句是在获取 逗号 在字符串 str 中出现的位置的索引(理解为序号,就是第几个位置的意思)

double d1 = Convert.ToDouble(str.Substring(0, commapos)); //这一句是在从字符串 str 的第0个位置(就是第一个字符)开始,截取长度为 commapos 的一个字符串,并将这个字符串转换为 double 类型,然后将值赋给 d1 变量。

double d2 = Convert.ToDouble(str.Substring(commapos + 1, str.Length - commapos - 1)); // 这一句和上一句差不多,只是起始位置和截取的长度不同而已

dg = new usedelegate(multiply); //这一句是在初始化一个委托(delegate),将满足该委托参数列表的方法交给委托去执行。

dg = new usedelegate(divide); (还有,这个new是什么意思呀?)
//这一句和上一句一样的意思,至于这个 new 在这里是初始化这个委托的意思

哇,解释起来好累

查MSDN

看看C#关于事件代理方面的知识点。这一块可是C#的难点,我看了好几次还没弄清楚呢。