小编Lun*_*din的帖子

如何在cshtml MVC3 Razor页面的javascript中嵌入c#代码

我将如何在MVC2 aspx页面上执行相当于嵌入JavaScript的内容:

if (('<%= Model.SomeFunctionEnabled %>' == 'True') 以及MVC3中Razor视图页面(cshtml)上的整个功能代码块?

就像是 :

@{
    foreach(var d in Model.Employees)
    {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

嵌入在视图页面的HTML部分时,它可以正常工作.谢谢

javascript razor asp.net-mvc-3

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

为什么允许多次声明typedef标识符?

从C99标准来看,6.7(5):

声明指定一组标识符的解释和属性.标识符的定义是该标识符的声明:对于对象,导致为该对象保留存储; 对于一个功能,包括功能体; 对于枚举常量或typedef名称,是标识符的(唯一)声明.

如果标识符typedef实际上是定义,那么为什么允许它们被多次声明?例:

int main()
{
  typedef int x;
  typedef int x;
}
Run Code Online (Sandbox Code Playgroud)

上面的程序编译没有错误.这怎么可能?我期待该程序给我一个多重定义错误.

c typedef c99 c11

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

为什么我可以在gcc -std = c11中使用gets()?

gets()功能已从C语言中删除.标准中不存在此类功能.

然而,我编译以下代码:

#include <stdio.h>

int main (void)
{
  (void) gets (NULL);
}
Run Code Online (Sandbox Code Playgroud)

运用

gcc -std=c11 -pedantic-errors -Wall -Wextra
Run Code Online (Sandbox Code Playgroud)

它编译时没有给出任何错误或警告.同样的,

#include <stdio.h>

int gets;

int main (void)
{}
Run Code Online (Sandbox Code Playgroud)

不会编译(错误:'获得'重新声明为不同类型的符号).

在标准4.一致性§6中,我们可以阅读:

符合实现的实现可能具有扩展(包括附加库函数),前提是它们不会改变任何严格符合程序的行为

鉴于上述情况,我认为即使在迂腐模式下,gcc也不符合标准.是否有一个原因?这是故意还是错误?

GCC版本4.9.1.

编辑:

gcc --version
gcc (x86_64-win32-seh-rev1, Built by MinGW-W64 project) 4.9.1
Run Code Online (Sandbox Code Playgroud)

c gcc gets language-lawyer c11

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

“来自整数的指针/来自没有强制转换的指针的整数”问题

这个问题旨在成为整数和指针问题之间所有初始化/分配的常见问题解答条目。


我想编写代码,将指针设置为特定的内存地址,例如0x12345678. 但是当用 gcc 编译器编译这段代码时,我得到“初始化使指针从整数而不进行强制转换”警告/错误:

int* p = 0x12345678;
Run Code Online (Sandbox Code Playgroud)

类似地,这段代码给出了“初始化从指针生成整数而不进行强制转换”:

int* p = ...;
int i =  p;
Run Code Online (Sandbox Code Playgroud)

如果我在变量声明行之外做同样的事情,消息是一样的,但说的是“赋值”而不是“初始化”:

p = 0x12345678; // "assignment makes pointer from integer without a cast"
i = p;          // "assignment makes integer from pointer without a cast"
Run Code Online (Sandbox Code Playgroud)

使用其他流行编译器的测试也会给出错误/警告消息:

  • clang 说“不兼容的整数到指针转换”
  • icc 说“类型的值int不能用于初始化类型的实体int*
  • MSVC (cl) 说“初始化int*在间接级别上与int”不同。

问题:上面的例子是有效的 C 吗?


还有一个后续问题:

这不会给出任何警告/错误:

int* p = 0;
Run Code Online (Sandbox Code Playgroud)

为什么不?

c pointers casting initialization assignment-operator

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

我什么时候需要停止使用设计模式?

我的同事们疯了,因为我一直想重写已经有效的代码,因为我想用设计模式替换一些遗留设计.虽然我觉得它有助于改进现有的代码,但我觉得我对此有点偏执,并尝试在任何地方使用它们,甚至用另一种代替一种设计模式.我的一些同事说,只要遗留代码有效,就不要管它.

我应该什么时候停止使用它们?你在哪里画出需要用更好的设计代替的代码和不需要触摸的代码之间的界限?

design-patterns legacy-code

11
推荐指数
8
解决办法
1561
查看次数

Java程序使用4D数组

我是第一年的计算机工程专业的学生,​​我在这里很新.在过去的三个半月里,我一直在学习Java,在此之前我已经学习了六个月的C++.我对Java的了解仅限于定义和使用自己的方法,面向对象编程的绝对基础知识,如使用静态数据成员和成员可见性.

今天下午,我的计算机编程教授教我们Java中的多维数组.关于多维数组只是数组的数组,依此类推.他提到,在名义教育编程中,几乎从不使用超过2维的数组.甚至3D阵列也仅在绝对必要的地方使用,例如执行科学功能.这使得4D数组几乎没有使用,因为使用它们会显示"你使用错误的数据类型",这是我教授的话.

但是,我想编写一个程序,其中使用任何数据类型,原始或其他数据的4D数组是合理的.该程序不能像打印数组元素那样简单.

我不知道从哪里开始,这就是我在这里发布的原因.我想要你的建议.我们也欢迎相关的问题陈述,算法和代码片段.

谢谢.

编辑:忘记提及,我完全不知道在Java中使用GUI,所以请不要发布实现GUI的想法.

java arrays variable-assignment multidimensional-array

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

Debian上没有stdint.h文件

我正在尝试使用Chibios.他们提供的示例代码似乎需要stdint.h文件.Makefile给出以下错误:

/usr/lib/gcc/arm-none-eabi/4.8/include/stdint.h:9:26: fatal error: stdint.h: No such file or directory
 # include_next <stdint.h>
                          ^
compilation terminated.
../../os/ports/GCC/ARMCMx/rules.mk:182: recipe for target 'build/obj/crt0.o' failed
make: *** [build/obj/crt0.o] Error 1
Run Code Online (Sandbox Code Playgroud)

我在网上找不到任何有用的东西.

c embedded gcc arm stm32

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

将按钮的可见属性分配给静态方法结果

我试图使用以下代码基于用户的角色隐藏按钮:

 <asp:Button ID="btndisplayrole" Text="Admin Button" Visible='<%= WebApplication1.SiteHelper.IsUserInRole("Admin") %>' runat="server" OnClick="DisplayRoleClick" />
Run Code Online (Sandbox Code Playgroud)

但是,当我运行上面的代码时,我收到以下错误消息:

无法从其字符串表示形式'<%= WebApplication1.SiteHelper.IsUserInRole("Admin")%>'为'Visible'创建'System.Boolean'类型的对象

.net css asp.net

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

没有第二个操作数的三元运算符

这是一个两条腿的问题:一个用于C,一个用于C++.

关于以下ternary(?:)运算符的使用,C和C++标准有什么说法:

const char* opt = /* possible NULL pointer */;
const char* str = opt ?: "";
Run Code Online (Sandbox Code Playgroud)

什么时候合法?它是编译器扩展吗?对第一个操作数有什么要求(可以隐式转换为bool/ int)?

c c++ gcc operators conditional-operator

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

字符数组应如何用作字符串?

我知道C中的字符串只是字符数组。因此,我尝试了以下代码,但给出了奇怪的结果,例如垃圾输出或程序崩溃:

#include <stdio.h>

int main (void)
{
  char str [5] = "hello";
  puts(str);
}
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?

它可以用干净地编译gcc -std=c17 -pedantic-errors -Wall -Wextra


注意:对于在声明字符串时未能为NUL终止符分配空间而引起的问题,本帖子旨在用作规范的FAQ。

c string c-strings string-literals nul

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