相关疑难解决方法(0)

使用m前缀现有字段

我正在尝试为我的项目进行结构替换.我有一个包含100多个类的包,每个包含1-20个字段.我们的项目正在迁移到匈牙利表示法,这意味着所有私有字段都必须以m为前缀.

我知道IntelliJ可以为新字段添加前缀,但我不知道为所有字段执行批处理Refactor-> Rename的配方.

正则表达式不起作用,因为所有字段都是通过应用程序在所有类型的上下文,方法调用,赋值,算术运算中使用的......

什么是最好的方法不是手动的?

java regex intellij-idea

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

PHP - 值得包括变量名中的数据类型?

我正在尝试将代码编写为可维护且易于理解,并且我想在其名称中包含变量所包含的数据类型.

例如:

$intCurrentLine = 1; instead of $currentLine = 1;
$strUser = 'blah'; instead of $user = 'blah';
Run Code Online (Sandbox Code Playgroud)

我不认为在上面的例子中确实有必要,但在某些情况下它可能有用吗?

  • 这可以让我的代码更容易理解吗?
  • 我应该实际使用它还是坚持使用"普通"变量名称?
  • 你知道使用它的脚本吗?

最好的问候,喇嘛

php variables naming-conventions

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

匈牙利人在VBA好吗?

我不在.Net中使用匈牙利语(str,int)前缀,但我仍然觉得它在VBA中很有用,在VBA中很难看到类型.

这不好吗?不必要?也许我错过了什么.

我真的很感激任何反馈.我一直在想.

谢谢大家.

vba hungarian-notation

6
推荐指数
3
解决办法
1738
查看次数

如何在sql中使用exec字符串赋值变量?

我想分配一个变量与返回的内容和"exec(string)",但我正在努力学习语法.下面是一些工作代码......

declare @iGeographyLevel int = 2
declare @iGeographyLevelID int = 64
declare @sGeographyName varchar(30)

declare @sSQL nvarchar(max)

set @sSQL = '
select Name
    from GeographyLevel'+ cast(@iGeographyLevel as varchar(5))+'
    where GeographyLevel'+ cast(@iGeographyLevel as varchar(5)) + 'ID = '+ cast(@iGeographyLevelID as varchar(5))

exec (@sSQL)
Run Code Online (Sandbox Code Playgroud)

我想做点什么......

set @sGeographyName  = exec (@sSQL)
Run Code Online (Sandbox Code Playgroud)

sql-server

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

如何在C#中将不同的对象传递给同一个函数

我有10个不同的类,但下面是两个用于此问题的目的:

public class Car
{
    public int CarId {get;set;}
    public string Name {get;set;}
}

public class Lorry
{
    public int LorryId {get;set;}
    public string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个像这样的功能

public static object MyFunction(object oObject, string sJson)
{
    //do something with the object like below 
    List<oObject> oTempObject= new List<oObject>();
    oTempObject = JsonConvert.DeserializeObject<List<oObject>>(sJson);
    return oTempObject;
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是将我创建的对象(如下面的oCar)传递给函数.

Car oCar = new Car();
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将不同类型的对象传递给同一个函数?

c# function object

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

C#排除数组对象

我对这段代码有点小问题:

string[] sWords = {"Word 1", "Word2"}
foreach (string sWord in sWords)
{
  Console.WriteLine(sWord);
}
Run Code Online (Sandbox Code Playgroud)

如果我想要打印每个对象,这可以正常工作.

我想知道我是否可以排除数组中的第一项?所以它只会输出"Word 2".我知道明显的解决方案不是包括第一项,但在这种情况下我不能.

c# arrays

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

我应该在C#中使用匈牙利应用程序表示法吗?

我知道这个问题已经被问了一下,从它的外观来看,这个问题没有明确的是或否答案,但是,我仍然对某些事情感到困惑.

通常在我编程时,我遵循一些关于前缀的规则:

  • m_在会员面前
  • p_在物业面前
  • s_在静态面前
  • a_在参数前面
  • l_在局部变量前面

我现在有一份新工作,我注意到代码中没有使用前缀.我问为什么,他们回答说IDE完成了跟踪成员变量是什么以及什么是局部变量的所有工作.现在我在想,可能是这样,但是使用前缀不是更容易吗?

我的意思是,如果我有一个成员,一个静态和一个名为"机器人"的局部变量,在编写方法时引用它是不是很麻烦?这可能是一个不切实际的例子,但我喜欢在我的头脑中设置一个良好的规则,即使是在不切实际的条件下,我也可以始终如一地应用.

这个例子是否适合使用匈牙利表示法?

我想我会制作一个优点/缺点列表并在我了解更多信息时对其进行编辑.

反对匈牙利人的论点:

Class.Robot 要么 Robot

this.robot

robot

不需要匈牙利人.

计数器:

仍然存在不一致性,机器人在不同的方法中可能意味着不同的东西.为了保持一致,你应该在每个Robot变量之前为Class或this(或没有)添加前缀.

最重要的是,假设你想要访问静态变量Strawberry,你怎么知道名为Strawberry的成员变量没有定义?也许它是在另一个你看不到的文件中定义的,所以你可能会得到意想不到的结果.现在您可能会说这是通过IDE可见的,但我认为使用前缀是优越的,因为您看到了您正在引用的内容,而您可能会错过IDE告诉您的内容.当然,您也可以使用此/ Classname前缀,但这种做法违背了不使用匈牙利表示法的目的.

反对匈牙利人的论点:

当在字段和变量的命名中使用匈牙利表示法时,会违反此规则.在C++代码中使用匈牙利表示法已经很普遍,但C#的趋势是为变量使用更长,更具描述性的名称,这些名称不是基于变量的类型,而是描述变量的用途.

计数器:

我提到的前缀不是基于变量的类型,前缀实际上指定了变量的用途.

反对匈牙利人的论点:

现代代码编辑器(如Visual Studio)可以轻松识别变量或字段的类型信息,通常是将鼠标光标悬停在变量名称上.这减少了对匈牙利表示法的需要.

计数器:

虽然这是真的,但除非发生错误,否则我自己几乎不会将鼠标悬停在变量名称上方.相反,使用匈牙利表示法,您可以立即看到变量在类中的位置.

备注:

Microsoft不推荐使用匈牙利表示法来表示文件名吗?我读到接口文件前缀为I是一种惯例,这是匈牙利表示法的一种形式.虽然这与我上面的问题没有直接关系,但它确实提出了有时建议使用匈牙利符号的观点.

c# coding-style hungarian-notation

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

数据库列类型前缀

我已经用数据库开发解决方案超过11年了,似乎我已经"开发"关于在我的表中命名列的一个相当有争议的意见:我总是给它们一个3或4个字符类型的前缀,即intGroupID, nvcTitle,dtmCreated,bitPlayerHater等.我和其他几位开发人员一起工作,他们都绝对鄙视老派的前缀约定.

(是的,我知道,我在这里没有发明任何东西,我只是拒绝放弃:)

我的主要原因是当他们试图了解数据结构时,尽可能多地向我的开发人员提供信息.立即了解列的类型可以为您(或至少我)提供一个更好的心理形象,让您了解所处理的内容.与C#或VB.NET相比,在编写查询时,通常不会从IDE获得相同的智能感知支持.

到目前为止,没有人能够提出可以改变我对这一特定主题的看法的杀手论点.我还有其他几个同样有争议的命名约定,它们提高了清晰度,但列前缀似乎让更多的人感到沮丧.

为什么前缀数据库列被认为是一种不好的做法?

database-design naming-conventions prefix

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

如果有javascript代码,请验证php变量

我在PHP(字符串)中有一些变量,我想检查一下这些字符串里面是否有一些javascript代码.如果是这样,我想使此代码处于非活动状态并在网站上显示为字符串,而不是作为javascript代码执行.

这将是一种安全方法.

有没有办法在PHP中做到这一点?如果你能给我一个例子,那就更好了.

非常感谢您的帮助.

javascript php

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