小编Ste*_*dit的帖子

C#调用函数基于对象的子类型

我现在很困惑C#.

我有一堆类,比如A,B和C,它们都来自"Parent"类.我有一个函数,它接受类型为Parent的参数,并且根据调用它的对象是哪个子类,我希望它调用另一个方法.

目前,我正在考虑使用字典映射类型代表委托,但这看起来很愚蠢,尽管我现在可以想出来.

问题是当我在函数中时,我只知道它是Parent类型,我可以使用GetType来获取我拥有的子类,这将允许字典.否则我可能会使用函数重载.

真正的类型转换似乎是最好的方法,允许我使用函数重载,这将不那么冗长,但我不知道我是如何做到的,或者它是否会起作用.

任何推荐?

c# oop

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

使用Int32.Parse

为什么需要将值(例如short)转换为string,然后转换为Int32.为什么它不能从short转换为Int 32?

.net c# types

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

有人用ClickOnce使用GoDaddy的代码签名证书

根据GoDaddy的FAQ,他们支持Microsoft的SignTool,但没有提到mage.exe.Mage.exe用于签署应用程序,但我无法弄清楚mage.exe是否使用SignTool.如果有人使用GoDaddy的ClickOnce代码签名证书,我们将非常感谢您的简短确认.

clickonce code-signing certificate

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

为什么strlen()返回64位整数?我错过了什么吗?

编译64位应用程序时,为什么strlen()返回64位整数?我错过了什么吗?

我理解strlen()返回一个size_t类型,根据定义,这不应该改变,但是......为什么strlen 需要返回一个64位整数?

该函数旨在与字符​​串一起使用.照这样说:

程序员通常会创建数千兆字节或多字节的字符串吗?如果他们这样做了,他们是否需要更好的方法来确定字符串长度而不是搜索NULL字符?

我认为这很荒谬,事实上,我们可能需要一个带回调的StrLenAsync()函数来处理在40TB字符串中搜索NULL的超长进程.听起来很愚蠢?是的,strlen()返回一个64位整数!

当然,提出的StrLenAsync()函数是一个笑话.

c++ 64-bit standards

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

数据库设计首选项:在SQL 2000中使用DateTime和BIT

我需要通过例子来解释这个:

是否有在数据库表中指定DateTime和BIT的最佳实践或首选项?

在我的数据库中,我有一个Widget表.我需要知道一个小部件是否"已关闭"并且它是"关闭日期"业务规则说如果一个小部件关闭,它必须有一个关闭日期.如果窗口小部件未关闭,则不应具有"关闭日期".

为了设计这个,我可以做到以下几点:

(例1):

CREATE TABLE [Widget]
(
    [WidgetID] INT IDENTITY(1,1)
    ,[ClosedDate] DATETIME NULL
)
Run Code Online (Sandbox Code Playgroud)

或(例2):

CREATE TABLE [Widget]
(
    [WidgetID] INT IDENTITY(1,1)
    ,[IsClosed] BIT NOT NULL CONSTRAINT [DF_Widget_IsClosed] DEFAULT (0)
    ,[ClosedDate] DATETIME NULL
)
Run Code Online (Sandbox Code Playgroud)

我认为示例1更清晰,因为它不用担心会减少一个列.但是,每当我需要评估Widget是否已关闭时,我需要一个额外的步骤来确定ClosedDate列是否为非NULL.

示例2创建了额外的开销,因为现在我必须保持IsClosed和ClosedDate值同步.

在设计这样的东西时有最好的做法吗?对于示例2,查询表格会更有效吗?我有什么理由选择一种设计而不是另一种设计?

注意:我将通过ORM工具和存储过程访问此值.

t-sql database-design sql-server-2000

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

VS2010会导致Win7出现任何问题吗?

我想在Win7上与2008版本并行安装Visual Studio 2010.这会引起一些问题吗?

visual-studio-2008 visual-studio-2010-beta-1

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

.Net类助手方法

有没有办法将类添加到类中,但允许它仍然由基类继承?

我有以下内容

public class ListWithRandomize<T> : List<T> {
   public void Randomize() { // Randomize function}

}
Run Code Online (Sandbox Code Playgroud)

我将要有一堆需要随机化的List对象.是否可以将List对象设置为ListFithRandomize对象?我想我可以将randomize函数设置为static并让它以List <>作为参数,但我希望将它作为类的方法...如果可能的话.

谢谢.

.net oop inheritance extension-methods

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

Cpp一些基本问题

我的任务如下:使用char*name和int age创建类Person.使用动态分配内存为变量,析构函数,函数init和友元函数显示实现构造函数.然后将此类转换为header和cpp文件,并在其他程序中实现.好的,这是我的Person类:

#include <iostream>
using namespace std;

class Person {   
    char* name;
    int age;
public:   

    Person(){
        int size=0;
        cout << "Give length of char*" << endl;
        cin >> size;
        name = new char[size];      
        age = 0;
    }

    Person::~Person(){
        cout << "Destroying resources" << endl;
        delete [] name;
        delete take_age();
    }  

    friend void show(Person &p);

   int* take_age(){
       return &age;
   }

   char* take_name(){
         return name;      
   }

    void init(char* n, int a) {
        name = n;
        age = a;
    }
}; 

void show(Person …
Run Code Online (Sandbox Code Playgroud)

c++ oop header-files

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

使用WCHAR作为CHAR?

GDI +使用WCHAR而不是WinAPI允许的CHAR.通常我可以这样做:

char *str = "C:/x.bmp";
Run Code Online (Sandbox Code Playgroud)

但我如何为wchar做这个?我不能这么做

wchar_t *file = "C:/x.bmp";
Run Code Online (Sandbox Code Playgroud)

谢谢

c c++

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

所需的内存和数据结构布局

当用c#编译类时,函数是否与它一起存储,从而增加了所需的内存?

换句话说,是否值得创建两个类1来存储数据,一个用于存储具有数据类实例的所有函数?

因此,如果我有200个数据实例,那么它将与数据+函数类的200个实例不同(需要内存)吗?

c# oop

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

ASP.NET:使用jQuery手动更新UpdatePanel

我在使用javascript(jQuery)更新ASP:UpdatePanel时遇到问题.这就是我的意思.

我正在使用隐藏的按钮技巧,因为我似乎无法获得__doPostBack技巧的更新面板的ClientID.

<asp:UpdatePanel runat="server" ID="pnlUpdate">

<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnUpdate" />
</Triggers>

<ContentTemplate>

<asp:UpdateProgress runat="server" AssociatedUpdatePanelID="pnlUpdate" DynamicLayout="false" DisplayAfter="100">
<ProgressTemplate>
<img alt="Laddar..." src="img/loader.gif" width="16" height="11"/>  
</ProgressTemplate>
</asp:UpdateProgress>

<div style="display:none;">  
<asp:Button runat="server" ID="btnUpdate" CommandName="Refresh" CommandArgument='<%# Eval("Id") %>'/>
</div>

<asp:Repeater runat="server" Id="rptrEnquiry">
...
</asp:Repeater>


<%= DateTime.Now.ToString() %>

<a href="javascript:jQuery('#<%= btnUpdate.ClientID %>').trigger('click')&&undefined;">Fire!</a>

</ContentTemplate>

</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

在处理btnUpdate的代码隐藏中(在GridView RowCommand中),当按下btnUpdate时,rptrEnquiry会反弹.

如果我直接按下按钮(虽然没有隐藏)一切都很完美(显示更新程序并更新日期并更新转发器.

但是,如果我单击fire link并通过javascript触发按钮,则只更新日期,但不显示updateprogress,并且转发器不会反弹.在调试时我可以看到反弹代码已经执行,但它的效果不在更新中.

c# asp.net jquery

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