我主要使用C++工作,现在我在新工作中使用C#,在这里阅读了关于'ref'关键字和c#值与引用类型的内容后,我仍然发现它们有些混乱.
至于我理解这些,如果你将这些传递给方法,这些将是类似的C++样式:
价值类型:
public void CSharpFunc(value)
Run Code Online (Sandbox Code Playgroud)
和
public void CPlusplusFunc(value)
Run Code Online (Sandbox Code Playgroud)
参考类型:
public void CSharpFunc(reference)
Run Code Online (Sandbox Code Playgroud)
和
public void CPlusPlusFunc(&reference)
Run Code Online (Sandbox Code Playgroud)
'ref'/指针
public void CSharpFunc(ref bar)
Run Code Online (Sandbox Code Playgroud)
和
public void CPlusPlus(*bar)
Run Code Online (Sandbox Code Playgroud)
这是一个正确的比喻吗?
我正在学习OpenGL 4.0,我想用OpenGL 4.0和GLSL绘制一个简单的三角形.我正在使用带有交错数组的VAO来实现它,但它显示的结果并不是我想要的结果:
现在我发布部分代码:
void SceneBasic::setupVAOInterleavedArrays()
{
//?????????????:????
float positionAndColorData[] = {
-0.8f, -0.8f, 0.0f,1.0f, 0.0f, 0.0f,
0.8f, -0.8f, 0.0f,0.0f, 1.0f, 0.0f,
0.0f, 0.8f, 0.0f,0.0f, 0.0f, 1.0f };
//glInterleavedArrays(GL_C3F_V3F,0,positionAndColorData)
GLuint vboHandle;//VBO
glGenBuffers(1,&vboHandle);
glBindBuffer(GL_ARRAY_BUFFER,vboHandle);
glBufferData(GL_ARRAY_BUFFER,18 * sizeof(float),
positionAndColorData,GL_STATIC_DRAW);
//VAO
glGenVertexArrays(1,&vaoHandle);
glBindVertexArray(vaoHandle);
//enable the generic vertex attribute indexes
//indicates that the values for the attributes will be accessed
//and used for rendering
glEnableVertexAttribArray(0);//position
glEnableVertexAttribArray(1);//color
//make the connection between the buffer objects and the generic
//vertex attributes indexes
glBindBuffer(GL_ARRAY_BUFFER,vboHandle);
glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,3 * sizeof(float),BUFFER_OFFSET(0));
glBindBuffer(GL_ARRAY_BUFFER,vboHandle); …
Run Code Online (Sandbox Code Playgroud) 假设我有这个字符串:
var1, var2, var3, "var4, test, test2", var5, "var6", var7
Run Code Online (Sandbox Code Playgroud)
如何使用explode()函数将它们放入这样的数组中
Array
(
[0] => var1
[1] => var2
[2] => var3
[3] => var4, test, test2
[4] => var4
[5] => var6
[6] => var7
)
Run Code Online (Sandbox Code Playgroud)