小编Dan*_*Dan的帖子

通过后面的aspx代码添加css类

我正在使用aspx.如果我有HTML如下:

<div id="classMe"></div>
Run Code Online (Sandbox Code Playgroud)

我希望通过代码隐藏文件动态添加一个css类,即在Page_Load上.可能吗?

css asp.net class code-behind

54
推荐指数
3
解决办法
13万
查看次数

为什么在函数上使用函子?

相比

double average = CalculateAverage(values.begin(), values.end());
Run Code Online (Sandbox Code Playgroud)

double average = std::for_each(values.begin(), values.end(), CalculateAverage());
Run Code Online (Sandbox Code Playgroud)

使用函子而不是函数有什么好处?是不是第一个更容易阅读(甚至在添加实施之前)?

假设仿函数定义如下:

class CalculateAverage
{
private:
   std::size_t num;
   double sum;
public:

   CalculateAverage() : num (0) , sum (0)
   {
   }

   void operator () (double elem) 
   {
      num++; 
      sum += elem;
   }

   operator double() const
   {
       return sum / num;
   }
};
Run Code Online (Sandbox Code Playgroud)

c++ stl functor

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

那么unique_ptr可以在stl集合中安全使用吗?

我对unique_ptr和rvalue move哲学很困惑.

假设我们有两个集合:

std::vector<std::auto_ptr<int>> autoCollection;
std::vector<std::unique_ptr<int>> uniqueCollection;
Run Code Online (Sandbox Code Playgroud)

现在我希望以下内容失败,因为没有人知道算法在内部做了什么,也许还在制作内部数据透视副本等,从而剥夺了auto_ptr的所有权:

std::sort(autoCollection.begin(), autoCollection.end());
Run Code Online (Sandbox Code Playgroud)

我明白了 并且编译器正确地不允许这种情况发生.

但后来我这样做:

std::sort(uniqueCollection.begin(), uniqueCollection.end());
Run Code Online (Sandbox Code Playgroud)

这编译.我不明白为什么.我不认为unique_ptrs可以复制.这是否意味着不能采用枢轴值,因此排序效率较低?或者这个转轴实际上是一个移动,实际上和auto_ptrs的集合一样危险,编译器应该不允许这样做?

我想我错过了一些重要的信息,所以我急切等待有人给我提供啊哈!时刻.

c++ auto-ptr unique-ptr c++11

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

使用强类型语言还有多远?

假设我正在编写一个API,我的一个函数采用一个代表一个通道的参数,并且只会在值0和15之间.我可以这样写:

void Func(unsigned char channel)
{
    if(channel < 0 || channel > 15)
    { // throw some exception }
    // do something
}
Run Code Online (Sandbox Code Playgroud)

或者我是否利用C++作为强类型语言,并使自己成为一种类型:

class CChannel
{
public:
    CChannel(unsigned char value) : m_Value(value)
    {
        if(channel < 0 || channel > 15)
        { // throw some exception }
    }
    operator unsigned char() { return m_Value; }
private:
    unsigned char m_Value;
}
Run Code Online (Sandbox Code Playgroud)

我的功能现在变为:

void Func(const CChannel &channel)
{
    // No input checking required
    // do something
}
Run Code Online (Sandbox Code Playgroud)

但这总是矫枉过正吗?我喜欢自我记录,并保证它是它所说的,但它是否值得支付这样一个对象的构造和破坏,更不用说所有额外的打字?请让我知道您的意见和备选方案.

c++ api types strong-typing

42
推荐指数
6
解决办法
2357
查看次数

C++中的可空值

我正在使用本机C++创建数据库访问层,我正在寻找支持NULL值的方法.这是我到目前为止:

class CNullValue
{
public:
    static CNullValue Null()
    {
        static CNullValue nv;

        return nv;
    }
};

template<class T>
class CNullableT
{
public:
    CNullableT(CNullValue &v) : m_Value(T()), m_IsNull(true)
    {
    }

    CNullableT(T value) : m_Value(value), m_IsNull(false)
    {
    }

    bool IsNull()
    {
        return m_IsNull;
    }

    T GetValue()
    {
        return m_Value;
    }

private:
    T m_Value;
    bool m_IsNull;
};
Run Code Online (Sandbox Code Playgroud)

这就是我必须定义函数的方法:

void StoredProc(int i, CNullableT<int> j)
{
    ...connect to database
    ...if j.IsNull pass null to database etc
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

sp.StoredProc(1, 2);
Run Code Online (Sandbox Code Playgroud)

要么

sp.StoredProc(3, CNullValue::Null());
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有比这更好的方法.特别是我不喜欢CNullValue的单例类对象和静态.我更愿意这样做

sp.StoredProc(3, …
Run Code Online (Sandbox Code Playgroud)

c++ nullable data-access-layer

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

Windows Forms是旧技术吗?

是时候为我的项目编写GUI了,我想知道要使用什么技术.我在.NET 1和2中完成了大部分的.NET GUI开发,因此我对Windows Forms的了解相当不错.我模糊地意识到WPF,但尚未尝试"进入它".

Windows窗体死了还是死了?WPF是一项很好的学习技术吗?它是未来,只是一个阶段,还是一种可以与Windows Forms一起携手合作的技术?

此外,任何经验都会很好听,特别是那些广泛使用过的人.您是如何在两个框架中找到实现类似功能的?

wpf winforms

26
推荐指数
2
解决办法
4206
查看次数

C++/CLI简写属性

开发人员如何在托管c ++中完成相同的操作?:

c#代码

public String SomeValue
{
  get;
  set;
}
Run Code Online (Sandbox Code Playgroud)

我已经在网上搜索并找到了一些解决方案,但鉴于getter/setter和托管c ++的丰富历史,很难区分哪种方法是正确的(最新的.NET 3.5)方式.

谢谢!

c++-cli properties shorthand

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

使用t-sql检索已过滤的存储过程列表

我正在尝试获取t-sql中的存储过程列表.我正在使用这条线:

exec sys.sp_stored_procedures;
Run Code Online (Sandbox Code Playgroud)

我想过滤回结果,所以我只获得用户创建的存储过程.我想过滤掉sp_*,dt_*,fn_*,xp_*以及其他所有系统存储过程并且对我没兴趣.如何操作返回的结果集?

使用Sql Server 2008 express.

解决了!这是我用过的:

SELECT name FROM sys.procedures
WHERE [type] = 'P'
AND name NOT LIKE 'sp_%'
AND name NOT LIKE 'dt_%'
ORDER BY name ASC;
Run Code Online (Sandbox Code Playgroud)

t-sql stored-procedures

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

C++ 0x中的闭包和嵌套lambda

使用C++ 0x,当我在lambda中有lambda时如何捕获变量?例如:

std::vector<int> c1;
int v = 10; <--- I want to capture this variable

std::for_each(
    c1.begin(),
    c1.end(),
    [v](int num) <--- This is fine...
    {
        std::vector<int> c2;

        std::for_each(
            c2.begin(),
            c2.end(),
            [v](int num) <--- error on this line, how do I recapture v?
            {
                // Do something
            });
    });
Run Code Online (Sandbox Code Playgroud)

c++ lambda visual-c++-2010 c++11

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

创建使用.NET命名空间的库的最佳实践

编写一个定义依赖于另一个库的接口的库是不好的做法吗?

我知道紧耦合很糟糕,但是在使用.NET类时这仍然适用吗?

例如,在.NET中,如果我有一个返回Color对象的库,它将强制在使用我的库的任何东西上依赖System.Drawing.在库中创建自己的Color-type类会更好吗?

.net dependencies coupling libraries

11
推荐指数
2
解决办法
781
查看次数