有关结构体函数的问题

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespace结构体{classProgram{///<summary>///定义了一个结构体a///</summary>structa{publicstringfirstName,lastName;publica(strings1,strings2){firstName=s1;lastName=s2;}publicstringName(){returnfirstName+""+lastName;}};//25行staticvoidMain(string[]args){aaa=newa("zhangsan","lisi");//请问为什么这行语句放在25行就错了!Console.WriteLine(aa.firstName);Console.WriteLine(aa.Name());}}}/*在VisualStudio2005中的输出结果是:---------------zhangsanzhangsanlisi请按任意键继续...---------------*/

解决方案

解决方案二:
aaa=newa("zhangsan","lisi");//请问为什么这行语句放在25行就错了!staticvoidMain(string[]args){//Console.WriteLine(aa.firstName);//Console.WriteLine(aa.Name());}

请问为什么这行语句放在25行就错了!本身没错。不过在Console.WriteLine(aa.firstName);的时候,classProgram还没有实例化,它的成员aa你当然没有办法访问。
解决方案三:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespace结构体{classProgram{///<summary>///定义了一个结构体a///</summary>staticstructa{publicstringfirstName,lastName;publica(strings1,strings2){firstName=s1;lastName=s2;}publicstringName(){returnfirstName+""+lastName;}};//25行staicaaa=newa("zhangsan","lisi");staticvoidMain(string[]args){Console.WriteLine(aa.firstName);Console.WriteLine(aa.Name());}}}因为你的mian函数时静态的方法我操每颜色了
解决方案四:
up,1,2楼,我的也是黑白的
解决方案五:
好像是在哀悼震灾
解决方案六:
我感觉你的疑问主要是你对静态方法与实例方法不太理解,你可以查一下Msdn,静态类是加载包含此类的程序或者命名空间时自动加载的,而静态方法是在第一次被调用前和任何静态构造函数被调用前加载,而实例方法或者实例成员是在被生成实例时加载的。如果你理解了上面的我所说的那一段话,你再看看你的程序为什么放到25行就会出错的原因了。出错原因:如果你把aa的声明放到25号,你可以看看,aa是一个实例成员,而main方法是一个静态成员。那好,根据上面的那段话,可以看出在程序执行main前需要把main方法加载到内存中,而aa是一个实例成员需要在声明Program实例时才被加载,那么在.net执行main方法前就无法知道aa所需的内存空间,所以会出错。另外,估计你在学习C#时也了解到,在静态方法中只能调用静态成员。希望以上对你有所帮助。
解决方案七:
先谢谢诸位了我在看看!

时间: 2024-09-25 10:03:04

有关结构体函数的问题的相关文章

c++-Visual Basic 6.0 读取一个C++编写的DLL中的结构体函数

问题描述 Visual Basic 6.0 读取一个C++编写的DLL中的结构体函数 Visual Basic 6.0 读取一个C++编写的DLL中的结构体函数,几个函数公用一个内存有没有问题?需要复制内存么? 解决方案 http://blog.itpub.net/102086/viewspace-792251/

浅析结构体函数指针与内核设备驱动

最近在公司没什么事做,突然有来写写日志和博客,这种突发的灵感来自于我在学习内核驱动代码的时候发现了结构体的一种古老的初始化方法,多亏了尚观广州校区的叶老师在群里用心的给我文字讲解,让我明白了原来结构体初始化也可以用:冒号这样的方法.          其实在C语言中,冒号:的用法有很多,比如三目运算符   表达式?表达式1:表达式2 : 它的意思就是如果表达式成立,那么执行表达式1,否则执行表达式2 .还有一种就是广泛用于结构体的位段中,例如: Struct node { Int id : 2

【C/C++学院】0814-引用高级、引用高级增加/auto自动变量自动根据类型创建数据/Bool/Enum/newdelete全局/大数据乘法与结构体/函数模板与auto/宽字符本地化/inline

引用高级.引用高级增加 #include<iostream> #include<stdlib.h> // int a[10] // int (&ra)[10] // int a[2][5] // int (&ra)[2][5] void main1() { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int(&ra)[10](a);//引用就是给原来的变量有一个别名同一个地址 int i = 0; for (

c语言 结构体函数:PHP的语言结构和函数的区别

相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等.例子: if ( isset($user) ) { //do some thing }原因是isset是语言结构,而strlen是一个函数.还有echo 是个语言结构,不是个函数.那什么是语言结构呢?它和函数有什么不同吗?1. 什么是语言结构和函数语言结构:就是PHP语言的关键词,语言语法的一部分:它不可以被用户定义或者添加到语言扩展或者库中:它可以有也可以没有变量和返回值.函

详解C语言结构体中的函数指针_C 语言

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式,用函数指针指向相应函数,以此达到调用函数的目的. 函数指针 函数类型 (*指针变量名)(形参列表):第一个括号一定不能少. "函数类型"说明函数的返回类型,由于"()"的优先级高于"*",所以指针变量名外的括号必不可少.  注意指针函数与函数指针表示

Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型

Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面也讲了许多,也提到了多级指针的概念,那具体我们怎么去操作呢 #include <stdio.h> #include <stdlib.h> main(){ int i = 3; //一级 int* p = &i; //二级,保存一级指针 int** w = &p; //三

Foundation框架—结构体

一.基本知识 Foundation-基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了. 即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用 创建变量 (二)NSPo

C语言中结构体参数变量的传递

[文章摘要]        在C语言中,结构体参数变量经常作为函数的参数来进行传递.但如果参数设置不当,会出现内存问题.        本文以实际的程序代码为例,详细地介绍如何正确地使用结构体参数变量,为相关的开发工作提供了参考. [关键词]        C语言  结构体  函数  参数  传递   一.前言        本文中的程序实现对员工信息结构体字段赋值并打印出来的功能.该结构体的定义如下: // 员工信息结构体 typedef struct {        INT8      

C语言 结构体和指针详解及简单示例_C 语言

指针也可以指向一个结构体,定义的形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小组 float score; //成绩 } stu1 = { "Tom", 12, 18, 'A', 136.5 }; //结构体指针struct stu *pstu = &stu1; 也可以在定义结构体的同时定义结构