c#想调用前面程序获得的变量,为什么不行呢?要怎么调用才好

问题描述

如下图所示:在次程序中,我想调用avg和sigma这两个变量,可为什么不行呢这张图是我写在前面的程序,按理说,我已经得到avg和sigma这两个变量了啊:

解决方案

解决方案二:
avg和sigma在哪里声明的,是局部变量还是全局变量,是static,public,private?如果全局变量则通过所在的类去调用,如果局部的,只能在自己的范围内调用,其他地方不能调用。
解决方案三:
引用1楼yysyangyangyangshan的回复:

avg和sigma在哪里声明的,是局部变量还是全局变量,是static,public,private?如果全局变量则通过所在的类去调用,如果局部的,只能在自己的范围内调用,其他地方不能调用。

你帮我看看:privatevoid数据分析FToolStripMenuItem_Click(objectsender,EventArgse){textBox1.Text=(dataGridView1.Rows.Count-1).ToString();//计算样本均值,样本最大值,样本最小值double[]sample=newdouble[dataGridView1.Rows.Count-1];for(inti=0;i<dataGridView1.Rows.Count-1;i++){sample[i]=double.Parse(dataGridView1.Rows[i].Cells[0].Value.ToString());}varavg=Math.Round(getavg(sample),2);varmax=getmax(sample);varmin=getmin(sample);textBox2.Text=avg.ToString();textBox10.Text=avg.ToString();textBox4.Text=max.ToString();textBox5.Text=min.ToString();//计算标准偏差doublesigma=Math.Round(getbzc(sample),2);textBox3.Text=sigma.ToString();textBox9.Text=sigma.ToString();}//求和publicdoublegetsum(double[]arr){doublesum=0;for(inti=0;i<arr.Length;i++){sum+=arr[i];}returnsum;}//求最小值publicdoublegetmin(double[]arr){doublemin=arr[0];for(inti=1;i<arr.Length;i++){if(arr[i]<min){min=arr[i];}}returnmin;}//求最大值publicdoublegetmax(double[]arr){doublemax=arr[0];for(inti=1;i<arr.Length;i++){if(arr[i]>max){max=arr[i];}}returnmax;}//求平均数publicdoublegetavg(double[]arr){doublesum=getsum(arr);returnsum/arr.Length;}//求标准差publicdoublegetbzc(double[]arr){doubleavg=getavg(arr);doublesum=0;for(inti=0;i<arr.Length;i++){sum+=(arr[i]-avg)*(arr[i]-avg);}returnSystem.Math.Sqrt(sum/arr.Length);}privatevoidtextBox1_TextChanged(objectsender,EventArgse){}privatevoid工序能力计算GToolStripMenuItem_Click(objectsender,EventArgse){doublenum1;//规格上限doublenum2;//规格下限doubleCPK;doubleCPKU;doubleCPKL;doubleT;//T为规格公差doubleU;//U为规格中心num1=double.Parse(textBox6.Text);num2=double.Parse(textBox7.Text);T=num1-num2;U=(num1+num2)/2;CPKU=(num1-avg)/(3*sigma);CPKL=(avg-num2)/(3*sigma);if(CPKU>CPKL){CPK=CPKL;}else{CPK=CPKU;}textBox8.Text="规格公差:"+T.ToString()+"/r/n";textBox8.Text+="规格中心:"+U.ToString()+"/r/n";textBox8.Text+="设计水平(P-Sigma):"+sigma.ToString()+"/r/n";textBox8.Text+="工序能力指数(Cpk):"+CPK.ToString()+"/r/n";}
解决方案四:
找本最基础的书,去看一下变量的作用域……你想要同一个类里的几个函数公用变量,那就把声明放到函数之外。
解决方案五:
avg和sigma另一个方法中的局部变量,你在其他地方当然访问不到了,要访问可以放到类变量里
解决方案六:
引用3楼wjq的回复:

找本最基础的书,去看一下变量的作用域……你想要同一个类里的几个函数公用变量,那就把声明放到函数之外。

是啊,这是个最基础的东西了.没有什么便捷的办法可行.
解决方案七:
把avg和sigma的声明放到方法外面doubleavg,sigma;privatevoid数据分析FToolStripMenuItem_C....将doublesigma=Math.Round(getbzc(sample),2);doubleavg=getavg(arr);改为sigma=Math.Round(getbzc(sample),2);avg=getavg(arr);
解决方案八:
引用楼主louguanghai的回复:

如下图所示:在次程序中,我想调用avg和sigma这两个变量,可为什么不行呢这张图是我写在前面的程序,按理说,我已经得到avg和sigma这两个变量了啊:

在方法、事件内部声明的变量,是私有变量,作用域在方法或者事件的}之内你这种情况,要声明全局变量decimalsigma,avg;

时间: 2024-08-30 15:26:04

c#想调用前面程序获得的变量,为什么不行呢?要怎么调用才好的相关文章

fpga程序调用模块时如何传递变量

问题描述 fpga程序调用模块时如何传递变量 比如下面可以传递常量4和8, adder_16 #(4,8) AD1(sum1,a1,b1);//time_delay=4,time_count=8 那如何传递变量那,比如cnt是一个变量,这个值不确定有可能是4,也有可能是8, adder_16 #(cnt) AD1(sum1,a1,b1);//time_delay=4,time_count=8 这句话就不对了,那我如何将cnt这个变量传递到adder_16模块?

java调用matlab程序

在实际Java编程中,我们可能想要使用matlab编写一些复杂的数值计算算法,然后导入我们的java项目中调用.这首先需要我们matlab的jdk版本和java项目的jdk版本对应一致.想查看matlabjdk版本,可以在matlab命令行中输入version -java来查看,会看到类似下面的内容: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode .下面我们来看看mat

ext-EXT怎么利用iframe调用后台程序

问题描述 EXT怎么利用iframe调用后台程序 望大家指点指点,现在想用ext的iframe调用后台的程序.Ext.onReady(function(){ Ext.QuickTips.init(); var tabId=Ext.getCmp('tp').getActiveTab().getId() em=[]; var loadMask = new Ext.LoadMask(Ext.getCmp('vp').getEl() {msg:genReportNow()}); document.get

zxing-用ZXing的demo写了一个程序,为什么用户需要选择,而不是调用自己的程序?求解决方法

问题描述 用ZXing的demo写了一个程序,为什么用户需要选择,而不是调用自己的程序?求解决方法 用ZXing的demo写了一个程序,为什么用户需要选择,而不是调用自己的程序?求解决方法 解决方案 例如Gallery3D的Activity中,每个intent-filter就是一个过滤器,你可以自己来定义,然后自己调用. <intent-filter> <action android:name=""android.intent.action.main.gallery3

C# 系统应用之调用SDelete程序粉碎文件及基础原理知识

在"个人电脑清除软件"中需要对文件进行彻底粉碎,使其不可恢复.这篇文章主要讲述的是Windows文件系统及调用SDelete程序彻底粉碎文件,希望文章对大家有所帮助. 一.Windows文件系统 首先,我回顾汤子丹西电版<计算机操作系统>(此篇部分参考该书)课程中学过的知识,也希望大家去阅读了解,如果不想知道这部分知识的可以跳过.为了文章的完整,我觉得这部分还是必要的. 1.文件及文件系统(1).文件系统为了方便用户使用软件资源,由OS提供的管理文件的软件机构.负责管理在外

android-我想在安卓程序中添加一个计数器。

问题描述 我想在安卓程序中添加一个计数器. 如题,类似于每点击一次按钮自增一的那样(FLAPPY BIRD 那种).求高手帮忙解决,感激不尽 解决方案 要求不是很明确呀,这个不是在定义一个Button,然后为Button设定一个监听,定义一个变量计数,每点击一次该变量加1就好了呢.

|zyciis| 慕白兄以前教我的从网页调用WinFrom程序的例子,那个WinForm程序执行完后可不可以返回数据到那个页面呢

问题描述 我现在在做发IC卡的程序在网页中添加一个ID,然后发卡http://topic.csdn.net/u/20071217/18/420dd1f2-6f17-4854-a08b-1480928c4ea8.html这个时候我就用ICCard:|1|sdf5465sd1f213sd//前面的为用户户后面的为验证MAC传了一个用户ID过去然后在客户端用程序给这个用户发一张VIP卡,并在客户端用WebService去更新数据库当发完VIP卡后,网页是没有改变的,这个时候就要手动的刷新一下才能从数据

go和python调用其它程序并得到程序输出_python

在c语言中可以用system函数调用系统命令并得到输出,通过输出重定向也可以将程序执行的输出保存到文件以供使用,但用起来不是很方便.我这里介绍下用python和go语言的实现方式,可以将其它程序的输出直接保存成变量供程序使用. 下面的示例用的是ls命名,需要安装MinGW,并将"C:\MinGW\msys\1.0\bin"加入环境变量. 一.用python调用其它程序,并得到输出 示例代码: 复制代码 代码如下: import osvar = os.popen('ls -l').rea

.bat中调用java程序,且得到java的输出(system.out.println)内容

问题描述 如题:在.bat中调用java程序,且得到java的输出(system.out.println)内容.我要在bat中执行"java-jarxxx.jar"并且用一个变量保存jar运行后的输出结果,jar中要么输出(system.out.println)0要么输出1,并且对结果进行判断如果变量值为0(注:变量的值是由jar运行产生的)则使用exit/B0退出,如果变量值1则使用exit/B1退出linux版的.sh代码如下:var=`java-jarxxxxx.jar${use