小编Aam*_*mir的帖子

旗帜枚举混乱C#

根据我的代码a = 1,b = 2,c = 3等我认为该标志会使a = 1,b = 2,c = 4等

[Flags]
public enum someEnum { none, a, b, c, d, e, f, }
Run Code Online (Sandbox Code Playgroud)

我如何得到我的意图(c = 4,e = 8)?[Flags]上面的意思是什么?

c# enums attributes enum-flags

3
推荐指数
1
解决办法
1188
查看次数

如何在运行时在WinForm中添加按钮?

我有以下代码:

public GUIWevbDav()
{
    InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
    try
    {
        //My XML Loading and other Code Here

        //Trying to add Buttons here
        if (DisplayNameNodes.Count > 0)
        {
            for (int i = 0; i < DisplayNameNodes.Count; i++)
            {
                Button folderButton = new Button();
                folderButton.Width = 150;
                folderButton.Height = 70;
                folderButton.ForeColor = Color.Black;
                folderButton.Text = DisplayNameNodes[i].InnerText;

                Now trying to do  GUIWevbDav.Controls.Add
                (unable to get GUIWevbDav.Controls method )

            }
        }
Run Code Online (Sandbox Code Playgroud)

我不想在运行时创建一个表单,但是将动态创建的按钮添加到Current Winform即:GUIWevDav

谢谢

c# winforms

3
推荐指数
2
解决办法
1万
查看次数

一种递归方法,用于查找任何(不一定是完整的)二叉树的深度

我试图以递归方式计算O(log n)时间内任何(不一定是完整的)BST的深度.

这是我提出的算法:

//max() - returns the max of two numbers
int depth(root)
{
    if(root->left==NULL && root->right==NULL) //leaf
        return 0;
    else if(root->left!=NULL && root->right==NULL) //with right leaf
        return( max(depth(root->left),0)+1);
    else if(root->left==NULL && root->right!=NULL) //with left leaf
        return( max(0,depth(root->right)+1);
    else if(root->left->left==NULL && root->left->right==NULL && root->right->left==NULL&&root->right->right==NULL) // this a parent of two leaves
        return 1; 
    else// for the condition that this a parent of two sub roots
        return( max(depth(root->right),depth(root->left))+1);
}
Run Code Online (Sandbox Code Playgroud)

这个算法在O(log n)时间内计算深度是否合适?

有没有更好的办法?

c tree data-structures

2
推荐指数
1
解决办法
5124
查看次数

从其对象获取struct字段的名称和类型

例如,我有一个类似这样的结构:

struct Test
{
    int i;
    float f;
    char ch[10];
};
Run Code Online (Sandbox Code Playgroud)

我有这个结构的对象,如:

Test obj;
Run Code Online (Sandbox Code Playgroud)

现在,我想以编程方式获取字段名称和类型obj.可能吗?

这是C++ BTW.

c++ struct

2
推荐指数
1
解决办法
2万
查看次数

如何使用LINQ从C#中的列表中的所有字符串中删除子字符串

我有一个字符串列表

"00000101000000110110000010010011",
"11110001000000001000000010010011",
Run Code Online (Sandbox Code Playgroud)

我需要从每个字符串中删除前4个字符

所以结果列表就像

"0101000000110110000010010011",
"0001000000001000000010010011",
Run Code Online (Sandbox Code Playgroud)

有没有办法用LINQ做到这一点?

c# linq

2
推荐指数
1
解决办法
3312
查看次数

使用带有类声明的virtual关键字

我在接受采访时被问及在C++中使用带有类声明的virtual关键字的用法是什么,我回答说虚拟关键字不能与C++中的类声明一起使用.面试官说这是可能的,并让我稍后进行测试.

现在我已经自己检查了一下,我已经知道这是可能的,这不是编译器错误.事实上,当我使用Visual C++编译器执行类似的操作时:

virtual class Test
{
   int i;
};
Run Code Online (Sandbox Code Playgroud)

我得到一个编译器警告"警告C4091:'virtual':当没有声明变量时,在'Test'的左边忽略".我还没有发现这个警告意味着什么,以及虚拟关键字的用法是什么.如果没有有用的用法,那么为什么首先允许这样做,为什么这不是编译器错误.

c++ virtual

1
推荐指数
2
解决办法
7272
查看次数

如何按名称选择TreeNode?

以名称"RootNode"检索时,以下代码不运行,因为rootNode为null

 treeView1.Nodes.Add(new TreeNode("RootNode"));

 ...
 //get the rootNode by its name
 TreeView1 rootNode = treeView1.Nodes["RootNode"]

 //rootNode is null so following line throws an error
 rootNode.Nodes.Add(new TreeNode("ChildNode"));
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?如何通过它的名称获取特定节点?

c# treeview

1
推荐指数
1
解决办法
6359
查看次数

c#.Net CF Form.Invoke引发ArgumentException

我从以下代码接收ArgumentException,我很难理解堆栈跟踪中的最后一个条目是

System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr,
                Binder binder, Object[] parameters, CultureInfo culture, 
                Boolean verifyAccess, StackCrawlMark& stackMark)
Run Code Online (Sandbox Code Playgroud)

当我逐步完成DeviceResponse时,按照我的预期填充并且目标位于并且符合预期,但每次都会抛出targetForm.Invoke

任何帮助将非常感激.

该事件定义为:

public static event EventHandler<MsgEventArgs<DeviceResponse>> DeviceResponseReceived;
Run Code Online (Sandbox Code Playgroud)

该代码正在引发该事件:

//Raise the event
if (DeviceResponseReceived != null)
{
    if (DeviceResponseReceived.Target is System.Windows.Forms.Form)
    {
         System.Windows.Forms.Form targetForm = DeviceResponseReceived.Target as System.Windows.Forms.Form;
         targetForm.Invoke(DeviceResponseReceived, new MsgEventArgs<DeviceResponse>(deviceResponse));
    }
}
Run Code Online (Sandbox Code Playgroud)

MsgEventArgs是从EventArgs派生的通用事件参数类:

public class MsgEventArgs<T> : EventArgs
{
    public MsgEventArgs(T value)
    {
        m_value = value;
    }
    private T m_value;
    public T Value
    {
        get { return m_value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的表单中,我已在表单构造函数中注册了该事件:

DeviceResponse.DeviceResponseReceived += …
Run Code Online (Sandbox Code Playgroud)

c# events user-interface compact-framework invoke

1
推荐指数
1
解决办法
1446
查看次数

为什么只拿一个?Linq to XML C#

我无法弄清楚为什么我的代码只采用第一个标签,而不是其余的.

var xml = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Themes.xml"));

var q = from f in xml.Descendants("themes")
        select new ThemesItem
        {
            Name = f.Element("theme").Element("name").Value,
            Description = f.Element("theme").Element("description").Value,
            Author = f.Element("theme").Element("author").Value,
        };

return q.ToList();
Run Code Online (Sandbox Code Playgroud)

ThemeItem只是一个带有公共字符串的get set当我写出这个数据时我使用了一个转发器感谢您的帮助:)

c# xml linq

1
推荐指数
1
解决办法
241
查看次数

递归程序

我正在尝试制作一个计算每年利息的递归程序.它会提示用户启动金额(1000),利率(10%)和年数(1).(括号内为样本)

手动我意识到兴趣来自公式YT(1 + R)-----第一年的利息是1100.

第二年YT(1 + R/2 + R2/2)// R平方

第二年YT(1 + R/3 + R2/3 + 3R3 /)// R立方

如何编写一个计算兴趣的递归程序?以下是我尝试过的功能

//编辑后的最新内容

double calculateInterest2(double start, double rate, int duration) 
{ 
    if (0 == duration) { 
        return start; 
    } else { 
        return (1+rate) * calculateInterest2(start, rate, duration - 1); 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

c++ recursion

1
推荐指数
1
解决办法
2499
查看次数

开始执行

请告诉我从c ++开始执行的地方,希望你的回答是"来自主要".

那怎么样?

class abc
{ 
public:
    abc()
    { 
        cout<<"hello";
    }
};

const abc obj;

int main( )
{ 
    cout<<"Main";
}
Run Code Online (Sandbox Code Playgroud)

输出:

helloMain 
Run Code Online (Sandbox Code Playgroud)

请详细说明.

c++

1
推荐指数
2
解决办法
471
查看次数