计算机如何在最低级别向屏幕绘制任何内容(没有关于外部库,如X11)?是否应该有汇编命令来执行此操作?CPU如何控制屏幕上显示的内容?
我知道我可以使用预处理器指令C#来启用/禁用某些代码的编译.
如果我在同一个文件中定义一个指令,它可以正常工作:
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
#if LINQ_ENABLED
using System.Linq;
#endif
Run Code Online (Sandbox Code Playgroud)
现在,我用于C++将所有这些配置指令放在单个头文件中,并将其包含在我需要这些指令的所有文件中.
如果我做同样的C#事情是行不通的:
//Config.cs
#define LINQ_ENABLED
//MyClass.cs
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
#if LINQ_ENABLED
using System.Linq;
#endif
Run Code Online (Sandbox Code Playgroud)
我也试过以下但似乎我无法在命名空间内定义指令:
//Config.cs
namespace Conf{
#define LINQ_ENABLED
}
//MyClass.cs
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
using Conf;
#if LINQ_ENABLED
using System.Linq;
#endif
Run Code Online (Sandbox Code Playgroud)
C#什么?我有问题.我使用sqlite来存储声音.我在byte []中得到声音.然后将byte []转换为float []:
private float[] ConvertByteToFloat(byte[] array)
{
float[] floatArr = new float[array.Length / 4];
for (int i = 0; i < floatArr.Length; i++)
{
if (BitConverter.IsLittleEndian)
Array.Reverse(array, i * 4, 4);
floatArr[i] = BitConverter.ToSingle(array, i * 4);
}
return floatArr;
}
float[] f = ConvertByteToFloat(bytes);
Run Code Online (Sandbox Code Playgroud)
然后创建AudioClip:
AudioClip audioClip = AudioClip.Create("testSound", f.Length, 1, 44100, false, false);
audioClip.SetData(f, 0);
Run Code Online (Sandbox Code Playgroud)
然后玩吧
AudioSource.PlayClipAtPoint(audioClip, new Vector3(100, 100, 0), 1.0f);
Run Code Online (Sandbox Code Playgroud)
但结果是噪音:(.
我知道这可能是一个常见的问题,但我试图搜索但仍然找不到明确的答案.
我有以下代码:
int* f() {
int a[] = {1,2,3};
return a;
}
int main() {
int a[] = f(); // Error here
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码生成错误消息:" Cannot convert from 'int *' to 'int []'"
我发现这很奇怪,因为我已经读过指针和数组是相似的.例如,我们可以使用[i]代替*(a + i).请问有人能给我一个明确的解释吗?
我正在关注我发现的一些代码,(是的,我理解它是如何工作的)它来自这里:Code Link
如果单元格值设置为"黄色",我正在尝试设置单元格前景色
这是我的代码:
public class Board extends JPanel{
private static final long serialVersionUID = 1L;
int boardHeight = 20;
int boardWidth = 10;
JTable table;
public Board() {
table = new JTable(this.boardHeight, this.boardWidth);
table.setDefaultRenderer(String.class, new BoardTableCellRenderer());
table.setFocusable(false);
table.setShowGrid(false);
table.setRowMargin(0);
table.setIntercellSpacing(new Dimension(0,0));
table.setRowSelectionAllowed(false);
table.setVisible(true);
this.add(table);
this.setPreferredSize(new Dimension(table.getPreferredSize().width, (table.getPreferredSize().height + 85)));
}
public void paint(Graphics g) {
table.setRowHeight(20);
for (int x = 0; x < this.table.getColumnCount(); ++x) {
TableColumn col = this.table.getColumnModel().getColumn(x);
col.setPreferredWidth(20);
}
}
}
Run Code Online (Sandbox Code Playgroud)
还有Cell Renderer
public class …Run Code Online (Sandbox Code Playgroud) 假设我有一个带泛型参数T的泛型类,它是一个Number子类.我想在课程构建期间初始化一个T数组.可能吗?如果有,怎么样?如果不是为什么?
public class AClass<T extends Number>{
private T array[];
private int arrayOfInt[];
public AClass(int size){
arrayOfInt = new int[size];
array = ? //what should I put here?
}
}
Run Code Online (Sandbox Code Playgroud) 请考虑以下事项
class base{
base();
~base();
}:
class derived : public base{
};
Run Code Online (Sandbox Code Playgroud)
当派生对象被破坏并且派生类没有定义析构函数时,是否会自动调用基类析构函数?
否则,如果我在派生类中也有析构函数,我是否还需要显式调用基类析构函数?
class base{
base();
~base();
}:
class derived : public base{
derived();
~derived
base::~base(); //do I need this?
}
};
Run Code Online (Sandbox Code Playgroud) 我有2个案例,一个方法可以被认为是一个工厂设计模式,这个例子是在C#,altought,可以应用于其他编程语言:
enum NinjaTypes {
Generic,
Katanna,
StarThrower,
Invisible,
Flyer
}
public class Ninja {
public string Name { get; set; }
public void jump() { ... }
public void kickAss() { ... }
}
public class KatannaNinja: Ninja {
public void useKatanna() { ... }
}
public class StarNinja: Ninja {
public void throwStar() { ... }
}
public class InvisibleNinja: Ninja {
public void becomeInvisible() {...}
public void becomeVisible() {...}
}
public class FlyNinja: Ninja {
public void fly() …Run Code Online (Sandbox Code Playgroud) 我是一个视觉工作室新手,目前正在使用VS 2010 express,C#和XNA 4.0开发游戏.
我正在尝试调试我正在开发的一个小游戏,当某个事件发生时使用Console.WriteLine调用.不幸的是,当我执行程序时,visual studio布局发生了变化,输出面板消失,直到程序退出(所以我只能在程序结束后分析输出).
我想知道是否有可能以及如何保持输出面板可见.
假设我有以下课程:
public class GenericClass<T>
{
public T Find()
{
//return T if found otherwise null or Nullable<T>
}
}
Run Code Online (Sandbox Code Playgroud)
在某个地方,我想把我的班级专门T用于a class,其他时候用a struct.我正面临这个问题:我不能返回一个Nullable<T>if T类型不限于一个struct.
我想提供一个我的Find方法的实现,如果T专门用于a class或a struct.如果Find失败,我想返回,null否则T是一个类Nullable<T>.
没有使用反射可能吗?如果有,怎么样?