我已经看到很多关于从字符串中实例化类的问题但是却无法以相同的方式找到有关创建结构的任何信息.
我有一个包含如下结构的类:
Public Structure callDetails
Public GUID As Guid
Public ringTime as Date
Public CBN As String
Run Code Online (Sandbox Code Playgroud)
等等
我真正想做的就是从结构中获取字段名称.我不在乎操纵字段中的数据.
到目前为止,我可以非常接近这一点.
callDetails callTableDef= new callDetails();
Type tableType = callTableDef.GetType();
object tableStruct = (object)Activator.CreateInstance(tableType);
System.Reflection.FieldInfo[] fields = tableType.GetFields();
foreach (System.Reflection.FieldInfo field in fields)
Debug.WriteLine(field.Name + " = " + field.GetValue(tableStruct));
Run Code Online (Sandbox Code Playgroud)
但是,我仍然需要使用实际名称创建结构的实例.我希望能够传入这样的字符串:
Type tableType = System.Type.GetType("callDetails");
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我从Activator.CreateInstance()得到一个ArgumentNullException
是不是getType应该查找作为字符串传递给它的值并返回类型?
我是C#的新手,在这个项目之前主要用Java编程.
在我正在研究的项目中,我正在构建我的代码,如下所示
MyLib = {
AField:0,
ASubNamespace:{
AnotherField:"value",
AClass:function(param) {
this.classField = param;
this.classFunction = function(){
// stuff
}
}
},
AnotherClass:function(param) {
this.classField = param;
this.classFunction = function(){
// stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
等等做这样的事情:
var anInstance = new MyLib.ASubNamespace.AClass("A parameter.");
Run Code Online (Sandbox Code Playgroud)
这是实现命名空间的正确方法吗?是否有性能命中,如果有,有多激烈?当我嵌套更深时,性能降级是否堆叠?使用此结构时是否还有其他问题需要注意?
我关心每一点性能,因为它是一个实时图形库,所以我非常重视任何开销.
这可能是C编程语言中最简单的问题之一......
我有以下代码:
typedef struct node
{
int data;
struct node * after;
struct node * before;
}node;
struct node head = {10,&head,&head};
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以使头部成为*头部[使其成为指针]并且仍然可以使用"{}"[{10,&head,&head}]来声明头部的实例并仍然将其留在全球范围?
例如:
//not legal!!!
struct node *head = {10,&head,&head};
Run Code Online (Sandbox Code Playgroud) 我正在使用Visual C#sand我使用的是Windows窗体而不是控制台应用程序.因此,我不是在Main()中工作,而是在Form File中工作.我对C#也很陌生,所以如果我的一些问题是愚蠢的,那就很抱歉.
我基本上需要做的是当我的程序启动时我需要它来永远循环.因为我没有Main(),所以我会把这段代码放在哪里?我把它放在有InitializeComponent()的函数中吗?我需要在程序启动后立即启动循环.但是,我需要在循环之前首先声明一些变量.所以基本上我需要声明变量然后开始无限循环.变量是全球性的.
其次,当用户按下按钮时,我需要无限循环中断.我该怎么做?我在考虑以下几点:
while (buttonIsPressed == false)
{
//do whatever I need to do
}
Run Code Online (Sandbox Code Playgroud)
但是,我意识到按钮的功能永远不会被调用,因为我被困在那个循环中.如果由于处于无限循环中而从未到达按钮的功能,我无法从按钮的功能设置变量.有任何想法吗?我在思考线程,但我对线程没有任何经验,所以我有点不愿意尝试它.
聊天应用程序.程序启动时我需要它继续听.但是,当用户单击"连接"时,它会停止侦听,而是启动连接
我正在创建一个聊天客户端.所以基本上当我的程序启动时,我需要它继续听.但是,当用户单击"连接"时,它需要停止侦听,而是启动连接
我正在努力决定应该使用哪个.
指向结构的指针的优点,我可以从头脑中思考.
双方的任何其他专业人士/骗局?
我已经开始使用Liferay开发portlet,我想展示一个(或更多)具有指定结构的Web内容文章.
例如,假设我有一个结构"A",那么如何才能获得使用此结构创建的最后一篇Web内容文章?
该文章介绍了如何得到一个物品tag,但不能用structure.
谢谢
#include<iostream>
using namespace std;
struct a{
int e;
struct abc *d;
};
struct abc{
int c;
};
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我已经定义了我已经声明了结构指针的struct abc后定义.这应该抛出编译错误,因为它在声明之前使用.但是,它没有,为什么?而当我刚刚取代它,而不是,这是给编译错误预期.struct aabcabcstruct abc dstruct abc *d
我使用此结构作为链表:
typedef struct Node{
int value;
struct node_t* next;
}node_t;
Run Code Online (Sandbox Code Playgroud)
一切工作都很好,直到我将其放在字段struct node_t* next之前为止int value,然后我在该结构上有很多垃圾值。是关于错误的实现还是代码中的其他内容?
我编写了这段代码来迭代结构的成员.它工作正常.我可以对具有混合类型元素的结构使用类似的方法,即一些整数,一些浮点数和......?
#include <stdio.h>
#include <stdlib.h>
struct newData
{
int x;
int y;
int z;
} ;
int main()
{
struct newData data1;
data1.x = 10;
data1.y = 20;
data1.z = 30;
struct newData *data2 = &data1;
long int *addr = data2;
for (int i=0; i<3; i++)
{
printf("%d \n", *(addr+i));
}
}
Run Code Online (Sandbox Code Playgroud) structure ×10
c ×4
pointers ×3
struct ×3
c# ×2
c++ ×2
arrays ×1
declaration ×1
dynamic ×1
javascript ×1
liferay ×1
linked-list ×1
loops ×1
namespaces ×1
portlet ×1
reflection ×1
web-content ×1