问题列表 - 第7024页

删除指向const的指针(T const*)

我有一个关于const指针的基本问题.我不允许使用const指针调用任何非const成员函数.但是,我可以在const指针上执行此操作:

delete p;
Run Code Online (Sandbox Code Playgroud)

这将调用类的析构函数,它实质上是一个非const'方法'.为什么允许这样做?它只是支持这个:

delete this;
Run Code Online (Sandbox Code Playgroud)

还是有其他原因吗?

c++ const delete-operator

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

如何检测对象是否为通用集合,以及它包含哪些类型?

我有一个字符串序列化实用程序,它接受(几乎)任何类型的变量并将其转换为字符串.因此,例如,根据我的惯例,整数值123将被序列化为"i:3:123"(i =整数; 3 =字符串的长度; 123 =值).

该实用程序处理所有原始类型,以及一些非泛型集合,如ArrayLists和Hashtables.界面是这种形式

public static string StringSerialize(object o) {}

在内部我检测对象是什么类型并相应地序列化它.

现在我想升级我的实用程序来处理泛型集合.有趣的是,我找不到一个合适的函数来检测对象是一个泛型集合,它包含哪些类型 - 我需要哪些信息才能正确序列化.到目前为止,我一直在使用表单的编码

if (o is int) {// do something}

但这似乎不适用于泛型.

您有什么推荐的吗?


编辑:感谢Lucero,我已经接近答案了,但我仍然坚持这个小小的语法难题:

if (t.IsGenericType) {
  if (typeof(List<>) == t.GetGenericTypeDefinition()) {
    Type lt = t.GetGenericArguments()[0];
    List<lt> x = (List<lt>)o;
    stringifyList(x);
  }
}
Run Code Online (Sandbox Code Playgroud)

此代码无法编译,因为" lt"不允许作为对象的<T>参数List<>.为什么不?什么是正确的语法?

c# generics typechecking

10
推荐指数
2
解决办法
4516
查看次数

如何使用JRuby和JDBC连接到Oracle

第一种方法:裸金属

require 'java'
require 'rubygems'
require "c:/ruby/jruby-1.2.0/lib/ojdbc14.jar"  # should be redundant, but tried it anyway
odriver = Java::JavaClass.for_name("oracle.jdbc.driver.OracleDriver")
puts odriver.java_class
url = "jdbc:oracle:thin:@myhost:1521:mydb"
puts "About to connect..."
con = java.sql.DriverManager.getConnection(url, "myuser", "mypassword");
if con
    puts " connection good"
else
    puts " connection failed"
end
Run Code Online (Sandbox Code Playgroud)

以上结果是:

sqltest.rb:4: cannot load Java class oracle.jdbc.driver.OracleDriver (NameError)
Run Code Online (Sandbox Code Playgroud)

第二种方法:积极记录

require 'rubygems'
gem 'ActiveRecord-JDBC'
require 'jdbc_adapter'
require 'active_record'
require 'active_record/version'
require "c:/ruby/jruby-1.2.0/lib/ojdbc14.jar"  # should be redundant...

ActiveRecord::Base.establish_connection(
   :adapter => 'jdbc',
   :driver => 'oracle.jdbc.driver.OracleDriver',
   :url => 'jdbc:oracle:thin:@myhost:1521:mydb',
   :username=>'myuser', …
Run Code Online (Sandbox Code Playgroud)

oracle jruby jdbc

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

要获得2个日期之间的差异

我有2个约会.我想获得storedprocedure中两个日期之间的天数.

sql t-sql sql-server sql-server-2005

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

无法在Ruby中将ffmpeg作为子进程运行

我正在尝试通过运行ffmpeg实用程序作为子进程来跟踪代码以确定视频分辨率并获取其输出并解析它:

IO.popen 'ffmpeg -i ' + path_to_file do |ffmpegIO|
    # my parse goes here
end
Run Code Online (Sandbox Code Playgroud)

...但是ffmpeg输出仍然连接到stdout并且ffmepgIO.readlines为空.ffmpeg实用程序是否需要一些特殊处理?还是有其他方法来获得ffmpeg输出?我在WinXP和Fedora Linux下测试了这段代码 - 结果是一样的.

ruby ffmpeg

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

如何在SSRS中使用VB.NET动态更改文本颜色?

我使用下面的代码动态更改文本,但我还需要使用VB.NET将SSRS中整行的颜色从黑色更改为红色.但是,row.Cells.Style.ForeColor = System.Drawing.Color.Red不起作用.有关如何动态更改特定行中文本颜色的任何想法?

Public Shared Function ChangeWord(ByVal s As String) As String
    Dim strBuilder As New System.Text.StringBuilder(s)
    If s.Contains("Others") Then
        strBuilder.Replace("Others", "Others FIG NOT INCL")
        Return strBuilder.ToString()
    Else : Return s
    End If
End Function

Public Shared Function ExcludeOthers(ByVal rowDesc As String, ByVal rowVal As Integer) As Integer
    If rowDesc.Contains("Others") Then
        rowVal = 0
        Return rowVal
    Else
        Return rowVal
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

vb.net reporting-services

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

SQL Cascading删除没有外键?

我有以下表格:

Country: Country_ID, CountryName
Regions: Region_ID, RegionName, Country_ID
Areas: Area_ID, AreaName, RegionID
Run Code Online (Sandbox Code Playgroud)

我没有使用外键而且没有计划这样做,我现在要做的就是能够在tableAdapter of country table中的一个查询中删除国家和所有相关区域,区域......

怎么样?

sql database

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

Zend Studio for eclipse - 为项目中的所有文件切换字符编码

我在Mac上使用Zend Studio for Eclipise,它似乎继续设置所有文件和'Mac Roman'的编码.当我保存文件时,这会成为问题,因为它们都需要是UTF-8.

我知道如何在逐个文件的基础上将编码更改为UTF-8,但我想知道是否可以将此项目设置为广泛?

eclipse character-encoding zend-studio

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

如何使用Word VBA删除命令按钮?

我有一个Word文档,其中包含一个名为"更新"的命令按钮.

如何使用VBA删除此按钮?

vba ms-word word-vba

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

获取传递给方法的参数的名称

重复: 确定用作方法参数的变量的名称

有没有办法检索传递给方法的参数的名称,例如

int someParameter = 1;
Method(someParameter);

public void Method(int parameter)
{
    // I want the name of 'parameter' which will be 'someParameter'.
}
Run Code Online (Sandbox Code Playgroud)

c# reflection parameters

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